package com.hanqi.cunchu;

 import android.app.ProgressDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText; import java.io.InputStream;
import java.io.ObjectStreamClass;
import java.io.OutputStream;
import java.net.URL; import javax.net.ssl.HttpsURLConnection; public class TestActivity3 extends AppCompatActivity {
EditText et_2; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test3);
et_2=(EditText)findViewById(R.id.et_2);
}
//显示结果
String STR = "";
//jdk的get方式
public void bt1_onclick(View v) {
//1-启动进度对话框
final ProgressDialog PD = ProgressDialog.show(this, null, "请稍等. . . ");
//2-启动子线程,访问远程服务器
new Thread() {
@Override
public void run() {
//访问远程服务器
//JDK-get
HttpsURLConnection HUC = null;
try {
//1-构造URL对象
URL url = new URL("http://192.168.31.56:81/index.asp?name=tom&password=456");
//2-得到HttpURLConnection
HUC = (HttpsURLConnection) url.openConnection();
//3-设置HttpURLConnection
HUC.setRequestMethod("GET");
HUC.setConnectTimeout(3000);
HUC.setReadTimeout(3000);
//4-连接远程服务器
HUC.connect();
//5-接收响应报文的状态
int code = HUC.getResponseCode();
//6-判断响应状态码,是否等于200
if (code == 200) {
//7-处理 //1-接收数据 //2-得到数据流
InputStream is = HUC.getInputStream();
//读到的数据
byte[] b = new byte[1024];
//读到的数据长度
int i = 0;
while ((i = is.read(b)) > 0) {
//接收字符串
STR += new String(b, 0, i);
}
is.close(); } else {
STR = "响应错误,错误码=" + code;
}
//显示结果,不能直接跨线程访问主线程的视图
runOnUiThread(new Runnable() {
@Override
public void run() {
et_2.setText(STR);
}
});
} catch (Exception e) {
e.printStackTrace();
} finally {
//8-关闭连接和进度对话框
//释放资源
if (HUC != null) {
HUC.disconnect();
}
//支持跨线程访问
PD.dismiss();
}
}
}.start();
}
//jdk的POST方式
public void bt2_onclick(View v)
{
//1-启动进度对话框
final ProgressDialog PD=ProgressDialog.show(this, null, "请稍等. . . ");
//2-启动子线程,访问远程服务器
new Thread()
{
@Override
public void run() {
//访问远程服务器
//JDK-get
HttpsURLConnection HUC = null;
try {
//1-构造URL对象
URL url = new URL("http://192.168.31.56:81/index.asp");
//2-得到HttpURLConnection
HUC = (HttpsURLConnection)url.openConnection();
//3-设置HttpURLConnection
HUC.setRequestMethod("POST");
HUC.setConnectTimeout(3000);
HUC.setReadTimeout(3000);
//4-连接远程服务器,输出流
HUC.connect();
//数据放到请求体里面
//1-得到输出流
OutputStream os=HUC.getOutputStream();
String outStr="name=tom&password=123";
os.write(outStr.getBytes("UTF-8"));
Log.e("TAG","发送. . .");
//5-接收响应报文的状态
int code = HUC.getResponseCode();
//6-判断响应状态码,是否等于200
if (code==200)
{
//7-处理 //1-接收数据 //2-得到数据流,输入流
InputStream is=HUC.getInputStream();
//读到的数据
byte[]b=new byte[1024];
//读到的数据长度
int i = 0;
while((i=is.read(b))>0)
{
//接收字符串
STR+=new String(b,0,i);
}
is.close();
os.close();
}
else
{
STR="响应错误,错误码="+code;
}
//显示结果,不能直接跨线程访问主线程的视图
runOnUiThread(new Runnable() {
@Override
public void run() {
et_2.setText(STR);
}
});
} catch (Exception e) {
e.printStackTrace();
}
finally {
//8-关闭连接和进度对话框
//释放资源
if (HUC!=null) {
HUC.disconnect();
}
//支持跨线程访问
PD.dismiss();
}
}
}.start();
}
}
 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.hanqi.cunchu.TestActivity3">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="JDK-GET方式"
android:onClick="bt1_onclick"/>
<Button
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="JDK-POST方式"
android:onClick="bt2_onclick"/>
</LinearLayout>
<EditText
android:layout_width="match_parent"
android:layout_height="200dp"
android:id="@+id/et_2"/>
</LinearLayout>

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

  1. ASP.NET Core 中文文档 第二章 指南(4.10)检查自动生成的Detail方法和Delete方法

    原文 Examining the Details and Delete methods 作者 Rick Anderson 翻译 谢炀(Kiler) 校对 许登洋(Seay).姚阿勇(Mr.Yao) 打 ...

  2. ThinkPHP的D方法和M方法的区别

    M方法和D方法的区别 ThinkPHP 中M方法和D方法都用于实例化一个模型类,M方法 用于高效实例化一个基础模型类,而 D方法 用于实例化一个用户定义模型类. 使用M方法 如果是如下情况,请考虑使用 ...

  3. Hibernate中evict方法和clear方法说明

    Hibernate中evict方法和clear方法说明 先创建一个对象,然后调用session.save方法,然后调用evict方法把该对象清除出缓存,最后提交事务.结果报错: Exception i ...

  4. Android HTTP实例 使用GET方法和POST方法发送请求

    Android HTTP实例 使用GET方法和POST方法发送请求 Web程序:使用GET和POST方法发送请求 首先利用MyEclispe+Tomcat写好一个Web程序,实现的功能就是提交用户信息 ...

  5. virtual方法和abstract方法

    在C#的学习中,容易混淆virtual方法和abstract方法的使用,现在来讨论一下二者的区别.二者都牵涉到在派生类中与override的配合使用. 一.Virtual方法(虚方法) virtual ...

  6. JavaScript indexOf() 方法和 lastIndexOf() 方法

    一,定义和用法 indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置. lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索 ...

  7. wait方法和sleep方法的区别

    一.概念.原理.区别 Java中的多线程是一种抢占式的机制而不是分时机制.线程主要有以下几种状态:可运行,运行,阻塞,死亡.抢占式机制指的是有多个线程处于可运行状态,但是只有一个线程在运行.      ...

  8. M方法和D方法的区别

    M方法和D方法的区别 ThinkPHP 中M方法和D方法都用于实例化一个模型类,M方法 用于高效实例化一个基础模型类,而 D方法 用于实例化一个用户定义模型类. 使用M方法 如果是如下情况,请考虑使用 ...

  9. ThinkPHP 中M方法和D方法详解----转载

    转载的地址,http://blog.163.com/litianyichuanqi@126/blog/static/115979441201223043452383/ 自己学到这里的时候,不能清除的分 ...

  10. Mapper类/Reducer类中的setup方法和cleanup方法以及run方法的介绍

    在hadoop的源码中,基类Mapper类和Reducer类中都是只包含四个方法:setup方法,cleanup方法,run方法,map方法.如下所示: 其方法的调用方式是在run方法中,如下所示: ...

随机推荐

  1. oracle 查询结果集运算

    intersec:交集minus:差集union:进行表连接后会筛选掉重复的记录,表连接之后对结果进行排序运算,删除重复记录在返回结果. union all:只是简单的将两个结果合并就返回.无论是否有 ...

  2. alert()、confirm()和prompt()的区别与用法

    1.警告消息框alertalert 方法有一个参数,即希望对用户显示的文本字符串.该字符串不是 HTML 格式.该消息框提供了一个"确定"按钮让用户关闭该消息框,并且该消息框是模式 ...

  3. vue.js在windows本地下搭建环境和创建项目

    Vue.js是一套构建用户界面的渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计.Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合.另一方面,Vu ...

  4. adminLTE的自动化菜单

    一. model from django.db import models # Create your models here. class MenuInfo(models.Model): paren ...

  5. js隐式转换

    JavaScript的数据类型分为六种,分别为null,undefined,boolean,string,number,object.object是引用类型,其它的五种是基本类型或者是原始类型.我们可 ...

  6. iOS常用设计模式笔记

    一.原则 1.单一职责原则 (Single Responsiblity Principle SRP) 2.开闭原则(Open Closed Principle,OCP) 3.里氏替换原则(Liskov ...

  7. 今天携程出事了:让我们来学习下http的响应码

    就在今天,2015年5月28日,中国最大的旅游机票预订网站--携程网粗大事了.据传携程网的数据库被人物理删除了,而容灾备份的数据又无法正常使用,服务器全面遭受瘫痪.每小时给携程带来的损失约100万美元 ...

  8. cef 介绍

    介绍 cef 是一个基于google chromiun的简单的框架. 它主要是作为一个内嵌浏览器嵌入到客户端应用程序中. 可以再 http://cefbuilds.com 下载最新的编译版本. 总体框 ...

  9. 关于SQL Server将一列的多行内容拼接成一行的问题讨论

    http://blog.csdn.net/rolamao/article/details/7745972 昨天遇到一个SQL Server的问题:需要写一个储存过程来处理几个表中的数据,最后问题出在我 ...

  10. css浮动与绝对定位小记

    浮动 float属性可以设置的值为none,left,right.对于设置了浮动的元素,会向其父元素的左侧或右侧紧靠,默认情况下,盒子的宽度不再伸展,而是根据盒子里面的内容来确定.浮动可以让一个元素移 ...