想开发一个在Android上运行的客户端程序,首先要学会怎么用Java进行Http访问。
HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。
- 实现了所有 HTTP 的方法(GET,POST,PUT,HEAD 等)
- 支持自动转向
- 支持 HTTPS 协议
- 支持代理服务器等
下载地址:
http://jakarta.apache.org/commons/httpclient/downloads.html
一个进行Http访问的例子。
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.URIException;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
import org.apache.commons.httpclient.util.URIUtil;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public final class HttpTookit {
private static Log log = LogFactory.getLog(HttpTookit.class);
public static String doGet(String url, String queryString) {
String response = null;
HttpClient client = new HttpClient();
HttpMethod method = new GetMethod(url);
try {
if (StringUtils.isNotBlank(queryString))
method.setQueryString(URIUtil.encodeQuery(queryString));
client.executeMethod(method);
if (method.getStatusCode() == HttpStatus.SC_OK) {
response = method.getResponseBodyAsString();
}
} catch (URIException e) {
log.error("执行HTTP Get请求时,编码查询字符串“" + queryString + "”发生异常!", e);
} catch (IOException e) {
log.error("执行HTTP Get请求" + url + "时,发生异常!", e);
} finally {
method.releaseConnection();
}
return response;
}
public static String doPost(String url, Map<String, String> params) {
String response = null;
HttpClient client = new HttpClient();
HttpMethod method = new PostMethod(url);
for (Iterator it = params.entrySet().iterator(); it.hasNext();) {
}
if (params != null) {
HttpMethodParams p = new HttpMethodParams();
for (Map.Entry<String, String> entry : params.entrySet()) {
p.setParameter(entry.getKey(), entry.getValue());
}
method.setParams(p);
}
try {
client.executeMethod(method);
if (method.getStatusCode() == HttpStatus.SC_OK) {
response = method.getResponseBodyAsString();
}
} catch (IOException e) {
log.error("执行HTTP Post请求" + url + " 时,发生异常!", e);
} finally {
method.releaseConnection();
}
return response;
}
public static void main(String[] args) {
String x = doGet("http://ilgnep.tk", "");
System.out.println(x);
}
}
下一步就是实现认证了。
参考
http://www.ibm.com/developerworks/cn/opensource/os-httpclient/
http://lavasoft.blog.51cto.com/62575/168276
分享到:
相关推荐
使用iServer JAVA API访问iServer数据服务进行数据操作示例工程,博客地址: http://blog.csdn.net/supermapsupport/article/details/71107998
java 访问 wcf 示例(使用的HttpClient)
java实现读取证书访问https接口并获取返回数据.证书格式cer,der,crt等。
java访问domino,通过http访问Domino,java快速访问Domino,java集成lotus domino 完全提供源码 界面请查阅 https://blog.csdn.net/weijia3624/article/details/113108704
这个是我自己集成框架的时候写的一个HTTP请求的辅助类,主要是通过HttpURLConnection 来实现JAVA的HTTP请求,有的人会问、为什么有些网站发请求没问题,有些网站发请求却返回数据,在给网站发送请求的时候,请看清楚...
利用java模拟http访问,具有超时限制的模拟web访问,利用jdk1.5线程实现,运行环境jdk1.5+
Java 调用Http Rest接口 例子说明
java 发送http请求 实现网络通信的全部jar包合集。 httpcomponents-client-4.5.5.rar
Java自带的HttpURLConnection访问接口文件上传, 含普通参数值传递和文件传递
http并发访问模拟工具 ,java语言开发
使用iServer JAVA API访问iServer空间分析服务进行叠加分析示例工程,博客地址: http://blog.csdn.net/supermapsupport/article/details/71171063
java调用HTTP接口(Get请求和Post请求)
Java Https请求,跳过证书,直接访问 相关jar包全有 直接下载就能调试
java搭建本地服务器,android客户端访问 详细步骤在这里 http://blog.csdn.net/qq_31939617/article/details/79415895
javax.management.remote 对 JMX MBean 服务器进行远程访问使用的接口。 javax.management.remote.rmi RMI 连接器是供 JMX Remote API 使用的一种连接器,后者使用 RMI 将客户端请求传输到远程 MBean 服务器。 ...
Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...
获取网络资源,使用动态代理ip解决单个ip访问次数限制问题
java实现http协议jar包,是一个访问http协议工具类,导入全部jar包到项目里面,调用httpRequest方法及可实现http协议访问,以及获取代理IP方法封装
压缩包里包含http和https两种请求,第一个文件是http请求包含post和get两种方式,剩下的是https的请求,最后一个文件里包含https的post和get两种方式。中间的两个是post 和 get 分开写的,按照需要引用吧
Eclipse下完整的java程序,包含HttpClient的全部jar包。通过java类文件,实现通过链接将文件下载本地