post方式請求資料,post方式請求
post方式請求資料
分析:
1、將請求方式改成post
conn.setRequestMethod("POST");
2、設定串連可以輸出
conn.setDoOutput(true);
3、告訴伺服器用戶端提交的資料類型(表單資料)
conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded;charset=utf-8");
application/x-www-form-urlencoded代表表單資料
如果是別的資料,這個部分是不同的,比如檔案或者音頻視頻的位元據
4、建立輸出資料流,給伺服器寫資料
OutputStream output=conn.getOutputStream();
output.write("username=老師".getBytes("UTF-8"));
output.close();
故伺服器會受到老師這兩個字
1 package com.example.htmldaimachakanqi; 2 3 import java.io.IOException; 4 import java.io.InputStreamReader; 5 import java.io.OutputStream; 6 import java.io.UnsupportedEncodingException; 7 import java.net.HttpURLConnection; 8 import java.net.MalformedURLException; 9 import java.net.URL;10 11 import android.app.Activity;12 import android.os.AsyncTask;13 import android.os.Bundle;14 import android.util.Log;15 import android.view.View;16 import android.widget.EditText;17 18 public class MainActivity extends Activity {19 private EditText et_content;20 21 @Override22 protected void onCreate(Bundle savedInstanceState) {23 super.onCreate(savedInstanceState);24 setContentView(R.layout.activity_main);25 et_content = (EditText) findViewById(R.id.et_content);26 }27 28 public void onClick(View view) throws UnsupportedEncodingException {29 new AsyncTask<String, Void, String>() {30 @Override31 protected String doInBackground(String... params) {32 StringBuffer buffer=new StringBuffer();33 try {34 Log.d("bh", params[0]);35 // 封裝了URL對象36 URL url = new URL(params[0]);37 // 擷取http連線物件38 HttpURLConnection conn = (HttpURLConnection) url39 .openConnection();40 // 佈建要求的方式 41 conn.setRequestMethod("POST"); 42 // 佈建要求的逾時時間 43 conn.setReadTimeout(5000); 44 conn.setConnectTimeout(5000);45 //設定串連是否可以輸出46 conn.setDoOutput(true);47 //設定串連是否可以輸入48 conn.setDoInput(true);49 //告訴伺服器用戶端提交的資料類型(表單資料)50 conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded;charset=utf-8");51 OutputStream output=conn.getOutputStream();52 output.write("username=老師".getBytes("UTF-8"));53 output.close();54 // 擷取狀態代碼55 int code = conn.getResponseCode();56 Log.d("bh",code+"");57 if (code == 200) {// 請求成功58 Log.d("bh",conn.getHeaderFields().toString());59 // 擷取響應訊息的實體內容60 InputStreamReader reader = new InputStreamReader(61 conn.getInputStream());62 char[] charArr = new char[1024 * 8];63 int len = 0;64 while ((len = reader.read(charArr)) != -1) {65 // 字元數組轉字串66 String str = new String(charArr, 0, len);67 // 在結尾追加字串68 buffer.append(str);69 }70 }71 } catch (MalformedURLException e) {72 e.printStackTrace();73 } catch (IOException e) {74 e.printStackTrace();75 }76 return buffer.toString();77 }78 79 protected void onPostExecute(String result) {80 // 設定字串到編輯框81 et_content.setText(result);82 };83 }.execute("http://192.168.1.100:8080/WEB/TestServlet");84 }85 }