post方式請求數據 分析: 1、將請求方式改成post conn.setRequestMethod("POST"); 2、設置連接可以輸出 conn.setDoOutput(true); 3、告訴伺服器客戶端提交的數據類型(表單數據) conn.setRequestProperty("Conten ...
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 @Override 22 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 @Override 31 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) url 39 .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 }