文档章节

HttpClient发送post请求,中文编码问题

moliunian
 moliunian
发布于 2016/07/19 10:28
字数 214
阅读 3K
收藏 0

3 月,跳不动了?>>>

/**
     * 模拟表单提交
     *@param url
     *@param data
     *@return
     *@since 2016-6-27 
     */
    public static String methodPost(String url,NameValuePair[] data){  
        
        String response= "";//要返回的response信息  
        HttpClient httpClient = new HttpClient();  
        PostMethod postMethod = new PostMethod(url);  
        //设置编码
        postMethod.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "UTF-8");

        // 将表单的值放入postMethod中  
        postMethod.setRequestBody(data);  
        // 执行postMethod  
        int statusCode = 0;  
        try {  
            statusCode = httpClient.executeMethod(postMethod);  
        } catch (HttpException e) {  
            e.printStackTrace();  
        } catch (IOException e) {  
            e.printStackTrace();  
        }  
        // HttpClient对于要求接受后继服务的请求,象POST和PUT等不能自动处理转发  
        // 301或者302  
        if (statusCode == HttpStatus.SC_MOVED_PERMANENTLY  
                || statusCode == HttpStatus.SC_MOVED_TEMPORARILY) {  
            // 从头中取出转向的地址  
            Header locationHeader = postMethod.getResponseHeader("location");  
            String location = null;  
            if (locationHeader != null) {  
                location = locationHeader.getValue();  
                System.out.println("The page was redirected to:" + location);  
                response= methodPost(location,data);//用跳转后的页面重新请求。  
            } else {  
                System.err.println("Location field value is null.");  
            }  
        } else {  
            System.out.println(postMethod.getStatusLine());  
  
            try {  
                response= postMethod.getResponseBodyAsString();  
            } catch (IOException e) {  
                e.printStackTrace();  
            }  
            postMethod.releaseConnection();  
        }  
        return response;  
    }  

© 著作权归作者所有

moliunian

moliunian

粉丝 6
博文 95
码字总数 18539
作品 0
广州
程序员
私信 提问
加载中

评论(0)

使用HttpClient和Jsoup快捷抓取和分析页面

最近在写一个小爬虫,准备爬一部分网页数据,来做模型训练,在考虑如何抓取网页及分析网页时,参考了OSC站中一些项目,特别是@黄亿华写的《webmagic的设计机制及原理-如何开发一个Java爬虫》...

仪山湖
2013/09/03
1.3W
1
HttpClient_4 用法 由HttpClient_3 升级到 HttpClient_4 必看

HttpClient程序包是一个实现了 HTTP 协议的客户端编程工具包,要想熟练的掌握它,必须熟悉 HTTP协议。一个最简单的调用如下:

落落的月
2012/05/11
868
0
dwr 请求中文乱码问题

用grinder脚本模拟dwr请求,如果参数有中文,则response返回为乱码;如果把参数encode一下,返回还是为乱码。 这个问题着实纠结了我一些时间。后来发现,原来浏览器实际运行的时候,dwr的eng...

鉴客
2011/11/08
1.5K
0
java模拟HTTP请求(集合了网上搜来的各种)

Java发送http请求 (get 与 post方法请求) Java发送http请求 (get 与post方法请求),以下代码经本人亲自调试可用!可以直接使用之。 注意:通过BufferedReader 读取远程返回的数据时,必须设置...

Yason_Luo
2014/01/08
1.5K
1
Android腾讯微博开发入门之开题与BaseString

2011年,开放元年,各大平台竞相开放,开发者们乐此不彼。但是作为进入开发平台的第一步,授权,却把很多开发者搞得晕头转向。个人学习开放平台从新浪微博入手,因频频不能得手,中途转战腾讯...

鉴客
2011/11/22
596
0

没有更多内容

加载失败,请刷新页面

加载更多

如何使div的浏览器窗口高度为100% - How to make a div 100% height of the browser window

问题: I have a layout with two columns - a left div and a right div . 我有两列的布局-左div和右div 。 The right div has a grey background-color , and I need it to expand vertic......

技术盛宴
今天
20
0
SSM框架整合

mybatis逆向工程 mybatis-generator生成pojo、mapper接口及映射文件 mapper放到e3-manager-dao层中 导入sql到数据库中; 导入逆向工程工具,配置xml文件 运行main方法 重复运行main不会覆盖!...

七宝1
今天
30
0
OSChina 周日乱弹 —— 和网友的第一次开房经历

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @薛定谔的兄弟 :分享洛神有语创建的歌单「我喜欢的音乐」: 《Ljósið》- Ólafur Arnalds 手机党少年们想听歌,请使劲儿戳(这里) @xiaos...

小小编辑
今天
50
0
程序员职业生涯指引

程序员应该尽早规划自己的职业生涯 为什么写 众所周知 IT 这一行到了一定的年龄、大部分人都或多或少有危机感,特别是今年全国乃至全球发生的疫情、导致整体经济受到很大的影响、这次的疫情影...

科比可比克
今天
11
0
JVM调优实战分析

一、查看服务器项目JVM参数以及参数分析 1、jps 命令 : 列出系统中所有的 Java 应用程序以及PID 如下图所示,26647就是我部署在服务器的一个小项目的 PID 2、jmap命令:查看堆的使用情况 如...

IT-Mamba
今天
46
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部