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>
时间: 2024-10-14 18:51:53

GET方法和POST方法的相关文章

详解equals()方法和hashCode()方法

前言 Java的基类Object提供了一些方法,其中equals()方法用于判断两个对象是否相等,hashCode()方法用于计算对象的哈希码.equals()和hashCode()都不是final方法,都可以被重写(overwrite). 本文介绍了2种方法在使用和重写时,一些需要注意的问题. 一.equal()方法 Object类中equals()方法实现如下: public boolean equals(Object obj) { return (this == obj); } 通过该实现

【学习笔记】【OC语言】set方法和get方法

1.set方法和get方法的使用场合@public的成员可以被随意赋值,应该使用set方法和get方法来管理成员的访问(类似机场的安检.水龙头过滤,过滤掉不合理的东西),比如僵尸的生命值不能为负数2.set方法作用:用来设置成员变量,可以在方法里面过滤掉一些不合理的值命名规范:方法都是以set开头,而且后面跟上成员变量名,成员变量名的首字母必须大写形参名称不要跟成员变量同名3.get方法作用:返回对象内部的成员变量命名规范:get方法的名称一般就跟成员变量同名4.成员变量的命名规范成员变量都以下

java 数组的 toString 方法和 equals 方法以及 java.lang.Object 对象的 toString 方法和 equals 方法

1 public class Test { 2 public static void main(String[] args) { 3 int[] a = {1, 2, 4, 6}; 4 int[] b = a; 5 int[] c = {1, 2, 4, 6}; 6 7 //下面这个方法打印的是a数组的引用地址 8 System.out.println(a.toString()); 9 //下面这个方法比较的是两个数组的引用是否相等 10 System.out.println("a.equals

黑马程序员 02-set方法和get方法

———Java培训.Android培训.iOS培训..Net培训.期待与您交流! ——— 1.set方法与get方法的使用场合 @public的成员变量可以被外界随意赋值,往往会产生脏数据,应该使用set方法和get方法来管理成员的访问(类似安检.水龙头过滤,过滤掉不合理的对象),不如人的年龄不可能为负. 2.set方法 (1)作用:给外界提供一个公共的方法用来设置成员变量值,可以在方法里面过滤掉一些不合理的值: (2)命名规范: 1> 方法名必须以set开头 2> set后面跟上成员变量的名

virtual方法和abstract方法

在C#的学习中,容易混淆virtual方法和abstract方法的使用,现在来讨论一下二者的区别.二者都牵涉到在派生类中与override的配合使用. 一.Virtual方法(虚方法) virtual 关键字用于在基类中修饰方法.virtual的使用会有两种情况: 情况1:在基类中定义了virtual方法,但在派生类中没有重写该虚方法.那么在对派生类实例的调用中,该虚方法使用的是基类定义的方法. 情况2:在基类中定义了virtual方法,然后在派生类中使用override重写该方法.那么在对派生

Android中的Sqlite中的onCreate方法和onUpgrade方法的执行时机

今天在做数据库升级的时候,遇到一个问题,就是onCreate方法和onUpgrade方法的执行时机的问题,这个当时在操作的时候,没有弄清楚,很是迷糊,所以写代码的时候出现了很多的问题,所以没办法就去扒源代码看了.不过在此之前我讲解过一篇关于数据库升级的文章,但是那里没有详细的讲解一下这两个方法的执行时机,所以这里就在单独说一下 关于数据库升级的文章:http://blog.csdn.net/jiangwei0910410003/article/details/39670813 不多说,下面直接进

详解HTTP请求:get方法和post方法的区别

在讨论get方法和post方法的区别时,我们经常会提到两点: 1.get传送的数据量较小,不能大于2KB,而post传送的数据量较大,一般被默认为不受限制: 2.get安全性非常低,但是post安全性较高: 究其根本,为什么呢?就需要提到http报文以及http报文的格式. 首先我们先看一下HTTP请求报文的通用格式: 在<计算机网络--自顶向下方法>一书中提到很关键的两句话: 使用get方法时实体主体为空,而使用post方法时才使用. HTML表单经常使用GET方法,将输入数据(在表单字段)

彻底理解了call()方法,apply()方法和bind()方法

javascript中的每一个作用域中都有一个this对象,它代表的是调用函数的对象.在全局作用域中,this代表的是全局对象(在web浏览器中指的是window).如果包含this的函数是一个对象的方法,this指向的就是这个对象.因此在上面例子中就不用直接写对象的名字,而是使用this代替它,例如: var human = { name: '霍林林', sayName: function(){ console.log(this.name); } } human.sayName(); 下面这个

序列化和持久化 merge方法和saveOrUpdate方法

merge方法和saveOrUpdate方法的区别 merge方法是把我们提供的对象转变为托管状态的对象:而saveOrUpdate则是把我们提供的对象变成一个持久化对象:说的通俗一点就是:saveOrUpdate后的对象会纳入session的管理,对象的状态会跟数据库同步,再次查询该对象会直接从session中取,merge后的对 象不会纳入session的管理,再次查询该对象还是会从数据库中取. 使用merge方法修改时如果两次修改的值没有变,它只会执行select而不会进行update.

wait方法和sleep方法的区别

一.概念.原理.区别 Java中的多线程是一种抢占式的机制而不是分时机制.线程主要有以下几种状态:可运行,运行,阻塞,死亡.抢占式机制指的是有多个线程处于可运行状态,但是只有一个线程在运行. 当有多个线程访问共享数据的时候,就需要对线程进行同步.线程中的几个主要方法的比较: Thread类的方法:sleep(),yield()等 Object的方法:wait()和notify()等 每个对象都有一个机锁来控制同步访问.Synchronized关键字可以和对象的机锁交互,来实现线程的同步. 由于s