复习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组件的方式 ...
随机推荐
- GCD 深入理解(一)
http://www.cocoachina.com/industry/20140428/8248.html 本文由@nixzhu翻译至raywenderlich的<grand-central-d ...
- JS浮点数运算BUG破法
JS里,0.3*3 = 0.8999999999999999 破法1:((0.3*10)*3)/10 破法2:(0.3*3).toFixed(2)//保留两位小数 原因:js浮点数用的是IEEE754 ...
- selenium借助AutoIt识别上传文件Java篇
官方网站:https://www.autoitscript.com/site/ 从网站上下载AutoIt并安装,安装完成在菜单中会看到图4.13的目录: 图4.13 AutoIt菜单 1.首先打开A ...
- Python计算程序运行时间
方法1 import datetime starttime = datetime.datetime.now() #long running endtime = datetime.datetime.no ...
- LoadRunner功能的Jmeter实现
- spark1.4的本地模式编程练习(1)
spark编程练习 申明:以下代码仅作学习参考使用,勿使用在商业用途. Wordcount UserMining TweetMining HashtagMining InvertedIndex Tes ...
- c#中如何得到百分比数值
//此方法得到的百分比后小数太多,不行double percent=Convert.ToDouble(2)/Convert.ToDouble(34);string result=(percent*10 ...
- 【MySQL】frm文件解析
官网说明:http://dev.mysql.com/doc/internals/en/frm-file-format.html frm是MySQL表结构定义文件,通常frm文件是不会损坏的,但是如果出 ...
- 【MySQL】MySQL锁和隔离级别浅析一
<MySQL技术内幕InnoDB存储引擎>第一版中对于MySQL的InnoDB引擎锁进行了部分说明,第二版有部分内容更新. 与MySQL自身MyISAM.MSSQL及其他平台BD锁的对比: ...
- 手机NFC模拟门禁卡
楼主所在的某电子科技类大学,从宿舍楼到实验楼到图书馆办公楼,全部都有门禁,前两天突然在某安软件市场看到一个可以模拟门禁卡的软件,然而可能是我的手机系统太6了,竟然模拟不了,无奈自己动手,从根本上解决问 ...