post方式请求数据_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > post方式请求数据

post方式请求数据

 2017/9/7 16:08:54  钻石VIP  程序员俱乐部  我要评论(0)
  • 摘要:post方式请求数据分析:1、将请求方式改成postconn.setRequestMethod("POST");2、设置连接可以输出conn.setDoOutput(true);3、告诉服务器客户端提交的数据类型(表单数据)conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded;charset=utf-8");application/x-www-form-urlencoded代表表单数据如果是别的数据
  • 标签:请求数据 数据 方式

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 }

 

发表评论
用户名: 匿名