xml:

  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. tools:context="com.xh.tx.postget.MainActivity" >
  6.  
  7. <EditText
  8. android:id="@+id/et_username"
  9. android:layout_width="match_parent"
  10. android:layout_height="wrap_content"
  11. android:hint="请输入用户名"
  12.  
  13. />
  14. <EditText
  15. android:id="@+id/et_password"
  16. android:layout_width="match_parent"
  17. android:layout_height="wrap_content"
  18. android:layout_below="@id/et_username"
  19. android:hint="请输入密码"
  20.  
  21. />
  22.  
  23. <Button
  24. android:id="@+id/bt_get"
  25. android:layout_width="match_parent"
  26. android:layout_height="wrap_content"
  27. android:layout_below="@id/et_password"
  28. android:text="GET提交"
  29. />
  30.  
  31. <Button
  32. android:id="@+id/bt_post"
  33. android:layout_width="match_parent"
  34. android:layout_height="wrap_content"
  35. android:layout_below="@id/bt_get"
  36. android:text="POST提交"
  37. />
  38.  
  39. </RelativeLayout>

NetUtils:

  1. package com.xh.tx.netUtils;
  2.  
  3. import java.io.ByteArrayOutputStream;
  4. import java.io.IOException;
  5. import java.io.InputStream;
  6. import java.io.OutputStream;
  7. import java.net.HttpURLConnection;
  8. import java.net.ProtocolException;
  9. import java.net.URL;
  10. import java.net.URLEncoder;
  11.  
  12. public class NetUtils
  13. {
  14. public static String getSubmit(String username,String password,String uri)
  15. {
  16. uri = uri +"?username=" + username + "&password=" + password;
  17.  
  18. HttpURLConnection conn = getHttpURLConnection(uri);
  19. // http://localhost:8080/TestServlet?username=zs&password=123
  20.  
  21. try {
  22. conn.setConnectTimeout(30000);
  23. conn.setReadTimeout(30000);
  24. conn.setRequestMethod("GET");
  25.  
  26. conn.connect(); //连接 连接的时候是否要传递参数过去
  27.  
  28. //先判断一下状态是否为200,如果为200则将in流转换为字符串
  29. if(conn.getResponseCode() == 200)
  30. {
  31. String content = getStringFromInputStream(conn.getInputStream());
  32.  
  33. return content;
  34. }
  35.  
  36. } catch (ProtocolException e) {
  37. e.printStackTrace();
  38. } catch (IOException e) {
  39. e.printStackTrace();
  40. }
  41.  
  42. return null;
  43. }
  44.  
  45. private static String getStringFromInputStream(InputStream inputStream) throws IOException
  46. {
  47. byte[] buffer = new byte[1024];
  48. ByteArrayOutputStream bytearray = new ByteArrayOutputStream();
  49. int len = 0;
  50.  
  51. while((len = inputStream.read(buffer, 0, 1024)) != -1)
  52. {
  53. bytearray.write(buffer);
  54. }
  55.  
  56. // String content = new String(bytearray.toByteArray(),"GBK");
  57.  
  58. return bytearray.toString();
  59. }
  60.  
  61. public static String postSubmit(String username,String password, String uri)
  62. {
  63. HttpURLConnection conn = getHttpURLConnection(uri);
  64.  
  65. try {
  66. conn.setConnectTimeout(30000);
  67. conn.setReadTimeout(30000);
  68. conn.setRequestMethod("POST");
  69. //如果你要兼容2.3版本,那么你必须添加一下这句话
  70. conn.setDoInput(true);
  71.  
  72. //参数传递
  73. OutputStream out = conn.getOutputStream();
  74.  
  75. conn.connect();
  76. out.write(("username="+username + "&password=" + password).getBytes());
  77.  
  78. if(conn.getResponseCode() == 200)
  79. {
  80. String content = getStringFromInputStream(conn.getInputStream());
  81. return content;
  82. }
  83. } catch (ProtocolException e) {
  84. e.printStackTrace();
  85. } catch (IOException e) {
  86. e.printStackTrace();
  87. }
  88.  
  89. return null;
  90. }
  91.  
  92. public static HttpURLConnection getHttpURLConnection(String uri)
  93. {
  94. try {
  95. URL url = new URL(uri);
  96. HttpURLConnection conn = (HttpURLConnection) url.openConnection();
  97.  
  98. return conn;
  99. } catch (IOException e) {
  100. e.printStackTrace();
  101. }
  102. return null;
  103.  
  104. }
  105. }

MainActivity:

  1. package com.xh.tx.postget;
  2.  
  3. import com.xh.tx.netUtils.NetUtils;
  4.  
  5. import android.app.Activity;
  6. import android.os.Bundle;
  7. import android.view.Menu;
  8. import android.view.MenuItem;
  9. import android.view.View;
  10. import android.view.View.OnClickListener;
  11. import android.widget.EditText;
  12. import android.widget.Toast;
  13.  
  14. public class MainActivity extends Activity implements OnClickListener {
  15.  
  16. EditText et_username;
  17. EditText et_password;
  18.  
  19. @Override
  20. protected void onCreate(Bundle savedInstanceState) {
  21. super.onCreate(savedInstanceState);
  22. setContentView(R.layout.activity_main);
  23.  
  24. et_username = (EditText) findViewById(R.id.et_username);
  25. et_password = (EditText) findViewById(R.id.et_password);
  26.  
  27. findViewById(R.id.bt_get).setOnClickListener(this);
  28. findViewById(R.id.bt_post).setOnClickListener(this);
  29.  
  30. }
  31.  
  32. @Override
  33. public void onClick(View v)
  34. {
  35. final String username = et_username.getText().toString();
  36. final String password = et_password.getText().toString();
  37.  
  38. switch (v.getId()) {
  39. case R.id.bt_get:
  40. new Thread(new Runnable()
  41. {
  42. @Override
  43. public void run()
  44. {
  45. final String status = NetUtils.getSubmit(username, password,"http://10.0.2.2:8080/baidu/LoginServelt");
  46.  
  47. runOnUiThread(new Runnable() {
  48. @Override
  49. public void run()
  50. {
  51. Toast.makeText(MainActivity.this, "返回的状态为:" + status, 0).show();
  52. }
  53. });
  54. }
  55. }).start();
  56. break;
  57. case R.id.bt_post:
  58. new Thread(new Runnable()
  59. {
  60. @Override
  61. public void run()
  62. {
  63. final String status = NetUtils.postSubmit(username, password,"http://10.0.2.2:8080/baidu/LoginServelt");
  64.  
  65. runOnUiThread(new Runnable() {
  66. @Override
  67. public void run()
  68. {
  69. Toast.makeText(MainActivity.this, "返回的状态为:" + status, 0).show();
  70. }
  71. });
  72. }
  73. }).start();
  74. break;
  75.  
  76. default:
  77. break;
  78. }
  79. }
  80. }

复习URLHttpConnection方式GET,POST方式链接网络解析uri的更多相关文章

  1. extern "C"——用“C”来规约在C++中用C的方式进行编译和链接

    C++中的extern “C”用法详解     extern "C"表明了一种编译规约,其中extern是关键字属性,“C”表征了编译器链接规范.对于extern "C& ...

  2. CentOS 6.9下KVM虚拟机网络Bridge(网桥)方式与NAT方式详解(转)

    摘要:KVM虚拟机网络配置的两种方式:NAT方式和Bridge方式.Bridge方式的配置原理和步骤.Bridge方式适用于服务器主机的虚拟化.NAT方式适用于桌面主机的虚拟化. NAT的网络结构图: ...

  3. JNDI提供了一种统一的方式,可以用在网络上查找和访问服务

    JNDI提供了一种统一的方式,可以用在网络上查找和访问服务.通过指定一个资源名称,该名称对应于数据库或命名服务中的一个记录,同时返回数据库连接建立所必须的信息. JNDI主要有两部分组成:应用程序编程 ...

  4. CentOS设置虚拟网卡做NAT方式和Bridge方式桥接

    CentOS设置虚拟网卡做NAT方式和Bridge方式桥接 http://www.centoscn.com/CentOS/config/2015/0225/4736.html 摘要:KVM虚拟机网络配 ...

  5. boost::ASIO的同步方式和异步方式

    http://blog.csdn.net/zhuky/article/details/5364574 http://blog.csdn.net/zhuky/article/details/536468 ...

  6. ASP.NET MVC传递Model到视图的多种方式之通用方式的使用

    ASP.NET MVC传递Model到视图的多种方式总结——通用方式的使用 有多种方式可以将数据传递到视图,如下所示: ViewData ViewBag PartialView TempData Vi ...

  7. Mybatis系列全解(七):全息视角看Dao层两种实现方式之传统方式与代理方式

    封面:洛小汐 作者:潘潘 一直以来 他们都说为了生活 便追求所谓成功 顶级薪水.名牌包包 还有学区房 · 不过 总有人丢了生活 仍一无所获 · 我比较随遇而安 有些事懒得明白 平日里问心无愧 感兴趣的 ...

  8. ZeroMQ接口函数之 :zmq_curve – 安全的认证方式和保密方式

    ZeroMQ 官方地址 :http://api.zeromq.org/4-0:zmq_curve zmq_curve(7) ØMQ Manual - ØMQ/4.1.0 Name zmq_curve  ...

  9. C#操作Excel的OLEDB方式与COM方式比较

    2013-03-15 13:42:54      作者:有理想的码农   在对Excel进行读写操作时,使用微软自身提供的解决方案,有两种(第三方方式除外),分别是OLEDB方式和调用COM组件的方式 ...

随机推荐

  1. ProGuard

    ProGuard的作用:  1.创建紧凑的代码文档是为了更快的网络传输,快速装载和更小的内存占用. 2.创建的程序和程序库很难使用反向工程. 3.所以它能删除来自源文件中的没有调用的代码 4.充分利用 ...

  2. js控制TR的显示隐藏

    在很多现实的场景中,有的文本框我们希望在选择“是”的按钮之后才出现,这就需要js控制TR的隐藏和显示,如何控制,本文为大家揭晓 下文分享的一段代码:选择是的按钮就显示身高和体重的文本框的代码.注意:r ...

  3. IOS开发-jqeurey mobile

    有一阵子没写东西了,最近打算重新拾起开发,做点手机上的东东,选中了phonegap.jquery mobile,phonegap的部署网上非常多,有空了再班门弄斧,这里先记下jquery mobile ...

  4. Redis多机功能之Sentinel

    Sentinel的目的:监视主从服务器,并在主服务器下线时自动进行故障转移 启动Sentinel 通过执行Redis安装文件中的redis-sentinel程序,可以启动一个Sentinel实例: r ...

  5. 翻译:Knockout 快速上手 - 2: 安装 knockoutJS

    只需要五个简单的步骤,就可以做好使用 Knockout 开发的准备! 第一步 我们需要什么? 最低限度,为了完成后面的教程,你需要如下的准备 Web 浏览器 文本编辑器 你的电脑上大约 2M 的磁盘空 ...

  6. python学习(二):python基本语法

    前言:python基本的语法与其他语言诸如C,JAVA等类似,但个中有些许不同. 一.常规语法 1.变量名与关键字 与其他语言类似,变量名由字母.数字.下划线组成,且必须由字母开头. 变量使用不需要提 ...

  7. C# Windows Forms 事件处理顺序

    事件引发的顺序对某些Windows 窗体应用来说十分重要.当某些事件需要特别处理时(如重绘窗体的某些部分),必须知道事件在运行时的确切引发顺序.下面就应用程序和控件的生命周期中的几个重要阶段的事件顺序 ...

  8. conpot_usage简要说明

    conpot是一个ICS(工业控制系统)蜜罐, 旨在收集攻击者针对工业控制系统的攻击方法和动机. 这篇文章主要用来说明conpot的用户定制相关的一些配置. (英文原文详见: https://gith ...

  9. 数据结构-多级指针单链表(C语言)

    偶尔看到大一时候写了一个多级链表,听起来好有趣,稍微整理一下. 稍微注意一下两点: 1.指针是一个地址,他自己也是有一个地址.一级指针(带一个*号)表示一级地址,他自身地址为二级地址.二级指针(带两个 ...

  10. 【PL/SQL练习】复合变量: 可以一次传递多个值到变量中。

    1.案例: 通过record类型处理一行多列的数据 复合变量--record 记录类型record:在一个变量中可以存储多个区域,每个区域可以是一个标量.记录或table (用于处理一行多列的信息) ...