• 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>
  • 相关阅读:
    send和sendmsg性能测试【sendmsg和send的性能基本一样,并没有得到优化】
    send和sendmsg性能测试
    SparkException: Master removed our application
    大数据入门:各种大数据技术介绍
    78 subsets
    C、C ++的内存模型
    将博客搬至CSDN
    适配器模式
    建造者(Builder)模式
    桥接模式
  • 原文地址:https://www.cnblogs.com/TENOKAWA/p/5581998.html
Copyright © 2020-2023  润新知