发送请求(要求服务端对response进行GZip压缩):
- import org.apache.commons.httpclient.HttpClient;
- import org.apache.commons.httpclient.HttpStatus;
- public class TestGzip {
- private final static String url = "http://localhost:8888/ltest.jsp";
- public static void main(String[] args) throws Exception{
- HttpClient http = new HttpClient();
- CustomGetMethod get = new CustomGetMethod(url);
- //添加头信息告诉服务端可以对Response进行GZip压缩
- get.setRequestHeader("Accept-Encoding", "gzip, deflate");
- try {
- int statusCode = http.executeMethod(get);
- if (statusCode != HttpStatus.SC_OK) {
- System.err.println("Method failed: "
- + get.getStatusLine());
- }
- //打印解压后的返回信息
- System.out.println(get.getResponseBodyAsString());
- } catch (Exception e) {
- System.err.println("页面无法访问");
- e.printStackTrace();
- } finally {
- get.releaseConnection();
- }
- }
- }
下面是CustomGetMethod.java的内容,getResponseBodyAsString()方法被重写,加入了解压功能
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.util.zip.GZIPInputStream;
- public class CustomGetMethod extends org.apache.commons.httpclient.methods.GetMethod{
- public CustomGetMethod(String uri) {
- super(uri);
- }
- /**
- * Get response as string whether response is GZipped or not
- *
- * @return
- * @throws IOException
- */
- @Override
- public String getResponseBodyAsString() throws IOException {
- GZIPInputStream gzin;
- if (getResponseBody() != null || getResponseStream() != null) {
- if(getResponseHeader("Content-Encoding") != null
- && getResponseHeader("Content-Encoding").getValue().toLowerCase().indexOf("gzip") > -1) {
- //For GZip response
- InputStream is = getResponseBodyAsStream();
- gzin = new GZIPInputStream(is);
- InputStreamReader isr = new InputStreamReader(gzin, getResponseCharSet());
- java.io.BufferedReader br = new java.io.BufferedReader(isr);
- StringBuffer sb = new StringBuffer();
- String tempbf;
- while ((tempbf = br.readLine()) != null) {
- sb.append(tempbf);
- sb.append("\r\n");
- }
- isr.close();
- gzin.close();
- return sb.toString();
- } else {
- //For deflate response
- return super.getResponseBodyAsString();
- }
- } else {
- return null;
- }
- }
- }
相关推荐
使用HttpClient4.5实现https请求忽略SSL证书验证工具类
HttpClient实现POST GET和文件下载 HttpClient实现POST GET和文件下载
用HttpClient实现文件下载需要满足:有一台web服务器,要下载的源文件需存放在web服务器的特定目录下。通过发起http请求实现文件下载功能。
通过HttpClient实现远程下载,本例子通过java代码实现
HttpClient response nullprivate static void close(HttpMethod method) {method.rel
java中跨项目使用httpclient实现数据交换
Android使用HttpClient实现上传下载功能并监控进度.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
使用HttpClient实现文件的上传所需lib
hp实现httpclient类示例,需要的朋友可以参考下,buffer 获取返回的字符串,referer 设置 HTTP_REFERER 的网址,response 服务器响应的 header 信息,request 发送到服务器的 header 信息。
Android使用HttpClient实现上传下载功能并监控进度
* 使用 GetMethod 来访问一个 URL 对应的网页,实现步骤: 1:生成一个 HttpClinet 对象并设置相应的参数。 * 2:生成一个 GetMethod 对象并设置响应的参数。 3:用 HttpClinet 生成的对象来执行 GetMethod 生成的Get ...
为帮助java初学者,我特意整理了一下用java实现httpClient的相关代码,其中包括客户端请求https服务器,直接解压放在eclipse即可查看运行,希望对想了解这方面的童鞋有帮助。
主要介绍了java实现HttpClient异步请求资源的方法,实例分析了java基于http协议实现异步请求的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
主要介绍了php实现httpclient类示例,需要的朋友可以参考下,buffer 获取返回的字符串,referer 设置 HTTP_REFERER 的网址,response 服务器响应的 header 信息,request 发送到服务器的 header 信息。
HttpClient配置SSL绕过https证书实例,附件中包含所需httpclient组件jar库。博客地址:http://blog.csdn.net/irokay/article/details/78801307。
httpclient 实现https双向认证
利用c# httpclient ,post json数据到web api
基于SSM+maven+httpClient+jsoup实现小说网站项目 基于SSM+maven+httpClient+jsoup实现小说网站项目 基于SSM+maven+httpClient+jsoup实现小说网站项目 基于SSM+maven+httpClient+jsoup实现小说网站项目 基于SSM+...
Android Asynchronous HTTPClient的实现和优化