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 }