package pro;
import java.io.IOException;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
public class simulateWebAction {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
String url = "http://wap.aibang.com:80/search.jsp;jsessionid=acITUg0h_0y8?city=%E8%8B%8F%E5%B7%9E&as=3000&p=1&pn=5&ip=58.211.115.116&s=sbiz";
PostMethod postMethod = new UTF8PostMethod(url);
StringBuilder origin = new StringBuilder();
origin.setLength(0);
HttpClient httpClient = new HttpClient();
// getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler());
NameValuePair a = new NameValuePair("a","东港");
NameValuePair q = new NameValuePair("q","餐厅");
NameValuePair[] param = new NameValuePair[]{a,q};
postMethod.setRequestBody(param);
try {
// 执行getMethod
int statusCode = httpClient.executeMethod(postMethod);
if (statusCode != HttpStatus.SC_OK) {
System.err.println("Method failed: "+ postMethod.getStatusLine());
}else{
// 读内容
System.out.println(postMethod.getResponseBodyAsString());
}
} catch (HttpException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
postMethod.releaseConnection();
}
}
public static class UTF8PostMethod extends PostMethod{
public UTF8PostMethod(String url){
super(url);
}
@Override
public String getRequestCharSet() {
//return super.getRequestCharSet();
return "UTF-8";
}
}
我在尝试着直接将中文改变为utf-8的字符串直接写入,失败后!以为是网络传输中应该是iso-8859-1方式传输的,然后将中文转为该编码格式,还是失败后,看httpclient源代码发现:重写postmethod中的getrequestcharset()方法,虽然源代码中该方法动态的设置编码格式,但是好像并没有很好的执行!在重写后,问题解决!
分享到:
相关推荐
解决HttpClient中文乱码问题jar文件
下载这个工具类,然后直接调用createHtmlPage方法就可以了。最关键一点是,网上的方法没有一个解决了乱码问题,费了我不少功夫。
服务器端自己写,本示例为客户端代码,可以解决httpClient4乱码问题,是替代修改源码的最佳写法。
很全面的代码介绍,很完整的乱码解决说明,让你一目了然,值得研究
HttpClient4.2.5实现文件上传,无中文文件名乱码问题。亲测无问题。有问题可吐槽!
我使用的是httpClient 进行内部转发 我们在A的服务器上,将前台的文件流,通过httpClient传输到B的服务器上(B的服务器通过控制层接受A传输的文件流,让后保存在B的服务器上。返回一个json结果)
在使用httpclient时,对https的操作引发相关问题的解决资料。
java动态提交网站httpclient java动态提交网站httpclient
HttpClient中文文档,快速开发
httpclient中文版本,HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。本文首先介绍 ...
httpclient3 httpclient4 上传文件 乱码问题
httpclient-4.5.3 api 中文版
httpclient测试登录并提交表单功能 一个小实例程序 很经典
《 httpclient-4.5.3中文版》 文档 ,重要的事说三遍:很实用,很实用,很实用!
httpClient完成get,post提交
httpclient4.5的中文帮助文档,可以帮助学习httpclient,利用httpclient采集网络数据,解决采集时遇到的问题
标签:apache、httpcomponents、httpclient、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明...
以httpclient方式提交数据(POST和GET),实现返回服务器数据。
NULL 博文链接:https://gary0416.iteye.com/blog/900498
标签:apache、httpcomponents、httpclient、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明...