使用post方式提交数据

Posted oooohuhu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用post方式提交数据相关的知识,希望对你有一定的参考价值。

post提交代码

 1 public class MainActivity extends Activity {
 2 
 3     @Override
 4     protected void onCreate(Bundle savedInstanceState) {
 5         super.onCreate(savedInstanceState);
 6         setContentView(R.layout.activity_main);
 7     }
 8 
 9     Handler handler = new Handler(){
10         public void handleMessage(android.os.Message msg) {
11             Toast.makeText(MainActivity.this, (String)msg.obj, 0).show();
12         }
13     };
14     
15     public void click(View v){
16         EditText et_name = (EditText) findViewById(R.id.et_name);
17         EditText et_pass = (EditText) findViewById(R.id.et_pass);
18         
19         final String name = et_name.getText().toString();
20         final String pass = et_pass.getText().toString();
21         
22         Thread t = new Thread(){
23             @Override
24             public void run() {
25                 //提交的数据需要经过url编码,英文和数字编码后不变
26                 @SuppressWarnings("deprecation")
27                 String path = "http://192.168.13.13/Web2/servlet/LoginServlet";
28                 
29                 try {
30                     URL url = new URL(path);
31                     HttpURLConnection conn = (HttpURLConnection) url.openConnection();
32                     conn.setRequestMethod("POST");
33                     conn.setConnectTimeout(5000);
34                     conn.setReadTimeout(5000);
35                     
36                     //拼接出要提交的数据的字符串
37                     String data = "name=" + URLEncoder.encode(name) + "&pass=" + pass;
38                     //添加post请求的两行属性
39                     conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
40                     conn.setRequestProperty("Content-Length", data.length() + "");
41                     
42                     //设置打开输出流
43                     conn.setDoOutput(true);
44                     //拿到输出流
45                     OutputStream os = conn.getOutputStream();
46                     //使用输出流往服务器提交数据
47                     os.write(data.getBytes());
48                     if(conn.getResponseCode() == 200){
49                         InputStream is = conn.getInputStream();
50                         String text = Utils.getTextFromStream(is);
51                         
52                         Message msg = handler.obtainMessage();
53                         msg.obj = text;
54                         handler.sendMessage(msg);
55                     }
56                 } catch (Exception e) {
57                     // TODO Auto-generated catch block
58                     e.printStackTrace();
59                 }
60             }
61         };
62         t.start();
63         
64         
65         
66     }
67 
68 }

utils

 1 public class Utils {
 2 
 3     public static String getTextFromStream(InputStream is){
 4         
 5         byte[] b = new byte[1024];
 6         int len = 0;
 7         //创建字节数组输出流,读取输入流的文本数据时,同步把数据写入数组输出流
 8         ByteArrayOutputStream bos = new ByteArrayOutputStream();
 9         try {
10             while((len = is.read(b)) != -1){
11                 bos.write(b, 0, len);
12             }
13             //把字节数组输出流里的数据转换成字节数组
14             String text = new String(bos.toByteArray());
15             return text;
16         } catch (IOException e) {
17             // TODO Auto-generated catch block
18             e.printStackTrace();
19         }
20         return null;
21     }
22 }

 

以上是关于使用post方式提交数据的主要内容,如果未能解决你的问题,请参考以下文章

PHP 使用表单提交到本页,POST接收不到数据值

POST提交数据方式

如何利用asp脚本用post的方式提交数据

表单提交数据方式,到底是使用 GET,还是 POST呢?

Retrofit初探——POST方式提交JSON数据

[android] 采用post的方式提交数据