复习URLHttpConnection方式GET,POST方式链接网络解析uri
xml:
- <RelativeLayout 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"
- tools:context="com.xh.tx.postget.MainActivity" >
- <EditText
- android:id="@+id/et_username"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:hint="请输入用户名"
- />
- <EditText
- android:id="@+id/et_password"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_below="@id/et_username"
- android:hint="请输入密码"
- />
- <Button
- android:id="@+id/bt_get"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_below="@id/et_password"
- android:text="GET提交"
- />
- <Button
- android:id="@+id/bt_post"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_below="@id/bt_get"
- android:text="POST提交"
- />
- </RelativeLayout>
NetUtils:
- package com.xh.tx.netUtils;
- import java.io.ByteArrayOutputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.OutputStream;
- import java.net.HttpURLConnection;
- import java.net.ProtocolException;
- import java.net.URL;
- import java.net.URLEncoder;
- public class NetUtils
- {
- public static String getSubmit(String username,String password,String uri)
- {
- uri = uri +"?username=" + username + "&password=" + password;
- HttpURLConnection conn = getHttpURLConnection(uri);
- // http://localhost:8080/TestServlet?username=zs&password=123
- try {
- conn.setConnectTimeout(30000);
- conn.setReadTimeout(30000);
- conn.setRequestMethod("GET");
- conn.connect(); //连接 连接的时候是否要传递参数过去
- //先判断一下状态是否为200,如果为200则将in流转换为字符串
- if(conn.getResponseCode() == 200)
- {
- String content = getStringFromInputStream(conn.getInputStream());
- return content;
- }
- } catch (ProtocolException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- return null;
- }
- private static String getStringFromInputStream(InputStream inputStream) throws IOException
- {
- byte[] buffer = new byte[1024];
- ByteArrayOutputStream bytearray = new ByteArrayOutputStream();
- int len = 0;
- while((len = inputStream.read(buffer, 0, 1024)) != -1)
- {
- bytearray.write(buffer);
- }
- // String content = new String(bytearray.toByteArray(),"GBK");
- return bytearray.toString();
- }
- public static String postSubmit(String username,String password, String uri)
- {
- HttpURLConnection conn = getHttpURLConnection(uri);
- try {
- conn.setConnectTimeout(30000);
- conn.setReadTimeout(30000);
- conn.setRequestMethod("POST");
- //如果你要兼容2.3版本,那么你必须添加一下这句话
- conn.setDoInput(true);
- //参数传递
- OutputStream out = conn.getOutputStream();
- conn.connect();
- out.write(("username="+username + "&password=" + password).getBytes());
- if(conn.getResponseCode() == 200)
- {
- String content = getStringFromInputStream(conn.getInputStream());
- return content;
- }
- } catch (ProtocolException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- return null;
- }
- public static HttpURLConnection getHttpURLConnection(String uri)
- {
- try {
- URL url = new URL(uri);
- HttpURLConnection conn = (HttpURLConnection) url.openConnection();
- return conn;
- } catch (IOException e) {
- e.printStackTrace();
- }
- return null;
- }
- }
MainActivity:
- package com.xh.tx.postget;
- import com.xh.tx.netUtils.NetUtils;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.Menu;
- import android.view.MenuItem;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.EditText;
- import android.widget.Toast;
- public class MainActivity extends Activity implements OnClickListener {
- EditText et_username;
- EditText et_password;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- et_username = (EditText) findViewById(R.id.et_username);
- et_password = (EditText) findViewById(R.id.et_password);
- findViewById(R.id.bt_get).setOnClickListener(this);
- findViewById(R.id.bt_post).setOnClickListener(this);
- }
- @Override
- public void onClick(View v)
- {
- final String username = et_username.getText().toString();
- final String password = et_password.getText().toString();
- switch (v.getId()) {
- case R.id.bt_get:
- new Thread(new Runnable()
- {
- @Override
- public void run()
- {
- final String status = NetUtils.getSubmit(username, password,"http://10.0.2.2:8080/baidu/LoginServelt");
- runOnUiThread(new Runnable() {
- @Override
- public void run()
- {
- Toast.makeText(MainActivity.this, "返回的状态为:" + status, 0).show();
- }
- });
- }
- }).start();
- break;
- case R.id.bt_post:
- new Thread(new Runnable()
- {
- @Override
- public void run()
- {
- final String status = NetUtils.postSubmit(username, password,"http://10.0.2.2:8080/baidu/LoginServelt");
- runOnUiThread(new Runnable() {
- @Override
- public void run()
- {
- Toast.makeText(MainActivity.this, "返回的状态为:" + status, 0).show();
- }
- });
- }
- }).start();
- break;
- default:
- break;
- }
- }
- }
复习URLHttpConnection方式GET,POST方式链接网络解析uri的更多相关文章
- extern "C"——用“C”来规约在C++中用C的方式进行编译和链接
C++中的extern “C”用法详解 extern "C"表明了一种编译规约,其中extern是关键字属性,“C”表征了编译器链接规范.对于extern "C& ...
- CentOS 6.9下KVM虚拟机网络Bridge(网桥)方式与NAT方式详解(转)
摘要:KVM虚拟机网络配置的两种方式:NAT方式和Bridge方式.Bridge方式的配置原理和步骤.Bridge方式适用于服务器主机的虚拟化.NAT方式适用于桌面主机的虚拟化. NAT的网络结构图: ...
- JNDI提供了一种统一的方式,可以用在网络上查找和访问服务
JNDI提供了一种统一的方式,可以用在网络上查找和访问服务.通过指定一个资源名称,该名称对应于数据库或命名服务中的一个记录,同时返回数据库连接建立所必须的信息. JNDI主要有两部分组成:应用程序编程 ...
- CentOS设置虚拟网卡做NAT方式和Bridge方式桥接
CentOS设置虚拟网卡做NAT方式和Bridge方式桥接 http://www.centoscn.com/CentOS/config/2015/0225/4736.html 摘要:KVM虚拟机网络配 ...
- boost::ASIO的同步方式和异步方式
http://blog.csdn.net/zhuky/article/details/5364574 http://blog.csdn.net/zhuky/article/details/536468 ...
- ASP.NET MVC传递Model到视图的多种方式之通用方式的使用
ASP.NET MVC传递Model到视图的多种方式总结——通用方式的使用 有多种方式可以将数据传递到视图,如下所示: ViewData ViewBag PartialView TempData Vi ...
- Mybatis系列全解(七):全息视角看Dao层两种实现方式之传统方式与代理方式
封面:洛小汐 作者:潘潘 一直以来 他们都说为了生活 便追求所谓成功 顶级薪水.名牌包包 还有学区房 · 不过 总有人丢了生活 仍一无所获 · 我比较随遇而安 有些事懒得明白 平日里问心无愧 感兴趣的 ...
- ZeroMQ接口函数之 :zmq_curve – 安全的认证方式和保密方式
ZeroMQ 官方地址 :http://api.zeromq.org/4-0:zmq_curve zmq_curve(7) ØMQ Manual - ØMQ/4.1.0 Name zmq_curve ...
- C#操作Excel的OLEDB方式与COM方式比较
2013-03-15 13:42:54 作者:有理想的码农 在对Excel进行读写操作时,使用微软自身提供的解决方案,有两种(第三方方式除外),分别是OLEDB方式和调用COM组件的方式 ...
随机推荐
- ProGuard
ProGuard的作用: 1.创建紧凑的代码文档是为了更快的网络传输,快速装载和更小的内存占用. 2.创建的程序和程序库很难使用反向工程. 3.所以它能删除来自源文件中的没有调用的代码 4.充分利用 ...
- js控制TR的显示隐藏
在很多现实的场景中,有的文本框我们希望在选择“是”的按钮之后才出现,这就需要js控制TR的隐藏和显示,如何控制,本文为大家揭晓 下文分享的一段代码:选择是的按钮就显示身高和体重的文本框的代码.注意:r ...
- IOS开发-jqeurey mobile
有一阵子没写东西了,最近打算重新拾起开发,做点手机上的东东,选中了phonegap.jquery mobile,phonegap的部署网上非常多,有空了再班门弄斧,这里先记下jquery mobile ...
- Redis多机功能之Sentinel
Sentinel的目的:监视主从服务器,并在主服务器下线时自动进行故障转移 启动Sentinel 通过执行Redis安装文件中的redis-sentinel程序,可以启动一个Sentinel实例: r ...
- 翻译:Knockout 快速上手 - 2: 安装 knockoutJS
只需要五个简单的步骤,就可以做好使用 Knockout 开发的准备! 第一步 我们需要什么? 最低限度,为了完成后面的教程,你需要如下的准备 Web 浏览器 文本编辑器 你的电脑上大约 2M 的磁盘空 ...
- python学习(二):python基本语法
前言:python基本的语法与其他语言诸如C,JAVA等类似,但个中有些许不同. 一.常规语法 1.变量名与关键字 与其他语言类似,变量名由字母.数字.下划线组成,且必须由字母开头. 变量使用不需要提 ...
- C# Windows Forms 事件处理顺序
事件引发的顺序对某些Windows 窗体应用来说十分重要.当某些事件需要特别处理时(如重绘窗体的某些部分),必须知道事件在运行时的确切引发顺序.下面就应用程序和控件的生命周期中的几个重要阶段的事件顺序 ...
- conpot_usage简要说明
conpot是一个ICS(工业控制系统)蜜罐, 旨在收集攻击者针对工业控制系统的攻击方法和动机. 这篇文章主要用来说明conpot的用户定制相关的一些配置. (英文原文详见: https://gith ...
- 数据结构-多级指针单链表(C语言)
偶尔看到大一时候写了一个多级链表,听起来好有趣,稍微整理一下. 稍微注意一下两点: 1.指针是一个地址,他自己也是有一个地址.一级指针(带一个*号)表示一级地址,他自身地址为二级地址.二级指针(带两个 ...
- 【PL/SQL练习】复合变量: 可以一次传递多个值到变量中。
1.案例: 通过record类型处理一行多列的数据 复合变量--record 记录类型record:在一个变量中可以存储多个区域,每个区域可以是一个标量.记录或table (用于处理一行多列的信息) ...