Android Studio——通过java.net.URLConnection发送HTTP请求的方法

原文链接:http://www.cnblogs.com/nick-huang/p/3859353.html


如何通过Java发送HTTP请求,通俗点讲,如何通过Java(模拟浏览器)发送HTTP请求。

Java有原生的API可用于发送HTTP请求,即java.net.URL、java.net.URLConnection,这些API很好用、很常用,但不够简便;

所以,也流行有许多Java HTTP请求的framework,如,Apache的HttpClient。

目前项目主要用到Java原生的方式,所以,这里主要介绍此方式。

 

运用原生Java Api发送简单的Get请求、Post请求

HTTP请求粗分为两种,一种是GET请求,一种是POST请求。(详细的请见:Hypertext Transfer Protocol -- HTTP/1.1 - Method Definitions)

使用Java发送这两种请求的代码大同小异,只是一些参数设置的不同。步骤如下:

  1. 通过统一资源定位器(java.net.URL)获取连接器(java.net.URLConnection)
  2. 设置请求的参数
  3. 发送请求
  4. 以输入流的形式获取返回内容
  5. 关闭输入流

 

简单的Get请求示例如下:

  HttpGetRequest

 

简单的Post请求示例如下:

  HttpPostRequest

 

简单封装

如果项目中有多处地方使用HTTP请求,我们适当对其进行封装,

  • 可以大大减少代码量(不需每次都写一大段原生的请求Source code)
  • 也可以使配置更灵活、方便(全局设置一些项目特有的配置,比如已商榷的time out时间、已确定的Proxy Server,避免以后改动繁琐)

 

以下简单封装成HttpRequestor,以便使用:

  HttpRequestor

   

写一个调用的测试类:

  Call

 

OK,完成!!

 

简单测试

以上的请求地址都是http://localhost:8080/OneHttpServer/

这是自己的一个用于测试的Web Application,就一个简单的Servlet和web.xml。毕竟需要测试请求参数是否能正常接收,处理超时的情况。

LoginServlet

  LoginServlet

 

web.xml

  web.xml

 

感觉自己萌萌哒!~~


你可能感兴趣的:(Android,Java)