GET方法和POST方法

  1 package com.hanqi.cunchu;
  2 
  3 import android.app.ProgressDialog;
  4 import android.support.v7.app.AppCompatActivity;
  5 import android.os.Bundle;
  6 import android.util.Log;
  7 import android.view.View;
  8 import android.widget.EditText;
  9 
 10 import java.io.InputStream;
 11 import java.io.ObjectStreamClass;
 12 import java.io.OutputStream;
 13 import java.net.URL;
 14 
 15 import javax.net.ssl.HttpsURLConnection;
 16 
 17 public class TestActivity3 extends AppCompatActivity {
 18     EditText et_2;
 19 
 20     @Override
 21     protected void onCreate(Bundle savedInstanceState) {
 22         super.onCreate(savedInstanceState);
 23         setContentView(R.layout.activity_test3);
 24         et_2=(EditText)findViewById(R.id.et_2);
 25     }
 26     //显示结果
 27     String STR = "";
 28     //jdk的get方式
 29     public void bt1_onclick(View v) {
 30         //1-启动进度对话框
 31         final ProgressDialog PD = ProgressDialog.show(this, null, "请稍等. . . ");
 32         //2-启动子线程,访问远程服务器
 33         new Thread() {
 34             @Override
 35             public void run() {
 36                 //访问远程服务器
 37                 //JDK-get
 38                 HttpsURLConnection HUC = null;
 39                 try {
 40                     //1-构造URL对象
 41                     URL url = new URL("http://192.168.31.56:81/index.asp?name=tom&password=456");
 42                     //2-得到HttpURLConnection
 43                     HUC = (HttpsURLConnection) url.openConnection();
 44                     //3-设置HttpURLConnection
 45                     HUC.setRequestMethod("GET");
 46                     HUC.setConnectTimeout(3000);
 47                     HUC.setReadTimeout(3000);
 48                     //4-连接远程服务器
 49                     HUC.connect();
 50                     //5-接收响应报文的状态
 51                     int code = HUC.getResponseCode();
 52                     //6-判断响应状态码,是否等于200
 53                     if (code == 200) {
 54                         //7-处理
 55 
 56                         //1-接收数据
 57 
 58                         //2-得到数据流
 59                         InputStream is = HUC.getInputStream();
 60                         //读到的数据
 61                         byte[] b = new byte[1024];
 62                         //读到的数据长度
 63                         int i = 0;
 64                         while ((i = is.read(b)) > 0) {
 65                             //接收字符串
 66                             STR += new String(b, 0, i);
 67                         }
 68                         is.close();
 69 
 70                     } else {
 71                         STR = "响应错误,错误码=" + code;
 72                     }
 73                     //显示结果,不能直接跨线程访问主线程的视图
 74                     runOnUiThread(new Runnable() {
 75                         @Override
 76                         public void run() {
 77                             et_2.setText(STR);
 78                         }
 79                     });
 80                 } catch (Exception e) {
 81                     e.printStackTrace();
 82                 } finally {
 83                     //8-关闭连接和进度对话框
 84                     //释放资源
 85                     if (HUC != null) {
 86                         HUC.disconnect();
 87                     }
 88                     //支持跨线程访问
 89                     PD.dismiss();
 90                 }
 91             }
 92         }.start();
 93     }
 94     //jdk的POST方式
 95     public void bt2_onclick(View v)
 96     {
 97         //1-启动进度对话框
 98         final ProgressDialog PD=ProgressDialog.show(this, null, "请稍等. . . ");
 99         //2-启动子线程,访问远程服务器
100         new Thread()
101         {
102             @Override
103             public void run() {
104                 //访问远程服务器
105                 //JDK-get
106                 HttpsURLConnection HUC = null;
107                 try {
108                     //1-构造URL对象
109                     URL url = new URL("http://192.168.31.56:81/index.asp");
110                     //2-得到HttpURLConnection
111                     HUC = (HttpsURLConnection)url.openConnection();
112                     //3-设置HttpURLConnection
113                     HUC.setRequestMethod("POST");
114                     HUC.setConnectTimeout(3000);
115                     HUC.setReadTimeout(3000);
116                     //4-连接远程服务器,输出流
117                     HUC.connect();
118                     //数据放到请求体里面
119                     //1-得到输出流
120                     OutputStream os=HUC.getOutputStream();
121                     String outStr="name=tom&password=123";
122                     os.write(outStr.getBytes("UTF-8"));
123                     Log.e("TAG","发送. . .");
124                     //5-接收响应报文的状态
125                     int code = HUC.getResponseCode();
126                     //6-判断响应状态码,是否等于200
127                     if (code==200)
128                     {
129                         //7-处理
130 
131                         //1-接收数据
132 
133                         //2-得到数据流,输入流
134                         InputStream is=HUC.getInputStream();
135                         //读到的数据
136                         byte[]b=new byte[1024];
137                         //读到的数据长度
138                         int i = 0;
139                         while((i=is.read(b))>0)
140                         {
141                             //接收字符串
142                             STR+=new String(b,0,i);
143                         }
144                         is.close();
145                         os.close();
146                     }
147                     else
148                     {
149                         STR="响应错误,错误码="+code;
150                     }
151                     //显示结果,不能直接跨线程访问主线程的视图
152                     runOnUiThread(new Runnable() {
153                         @Override
154                         public void run() {
155                             et_2.setText(STR);
156                         }
157                     });
158                 } catch (Exception e) {
159                     e.printStackTrace();
160                 }
161                 finally {
162                     //8-关闭连接和进度对话框
163                     //释放资源
164                     if (HUC!=null) {
165                         HUC.disconnect();
166                     }
167                     //支持跨线程访问
168                     PD.dismiss();
169                 }
170             }
171         }.start();
172     }
173 }
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout
 3     xmlns:android="http://schemas.android.com/apk/res/android"
 4     xmlns:tools="http://schemas.android.com/tools"
 5     android:layout_width="match_parent"
 6     android:layout_height="match_parent"
 7     android:orientation="vertical"
 8     tools:context="com.hanqi.cunchu.TestActivity3">
 9     <LinearLayout
10         android:layout_width="match_parent"
11         android:layout_height="wrap_content"
12         android:orientation="horizontal">
13         <Button
14             android:layout_width="0dp"
15             android:layout_weight="1"
16             android:layout_height="wrap_content"
17             android:text="JDK-GET方式"
18             android:onClick="bt1_onclick"/>
19         <Button
20             android:layout_width="0dp"
21             android:layout_weight="1"
22             android:layout_height="wrap_content"
23             android:text="JDK-POST方式"
24             android:onClick="bt2_onclick"/>
25     </LinearLayout>
26     <EditText
27         android:layout_width="match_parent"
28         android:layout_height="200dp"
29         android:id="@+id/et_2"/>
30 </LinearLayout>

 

posted @ 2016-06-13 20:39  宫崎天川  阅读(320)  评论(0编辑  收藏  举报