模拟提交 form post提交中文问题。

发布于 2021-11-26 01:12:41 字数 1390 浏览 828 评论 1

今天使用webmagic模拟post请求,但是中文参数被编码后不正确。

Content-Type=application/x-www-form-urlencoded; charset=UTF-8

后来发现在重写selectRequestMethod方法,解决问题,代码如下:

String method = request.getMethod();
        if (method == null || method.equalsIgnoreCase(HttpConstant.Method.GET)) {
            //default get
            return RequestBuilder.get();
        } else if (method.equalsIgnoreCase(HttpConstant.Method.POST)) {
            RequestBuilder requestBuilder = RequestBuilder.post();
            NameValuePair[] nameValuePair = (NameValuePair[]) request.getExtra("nameValuePair");
            /** 原添加post数据代码
                if (nameValuePair.length > 0) {
                    requestBuilder.addParameters(nameValuePair);
                }
            **/
            try {
                requestBuilder.setEntity((new UrlEncodedFormEntity(Arrays.asList(nameValuePair),HTTP.UTF_8)));
            } catch (UnsupportedEncodingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return requestBuilder;
        }




请问除了重写selectRequestMethod,有没有更好的解决办法。如果没写更好的办法,黄大能否在后续版本中对post中文进行支持呢。谢谢。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

醉酒的小男人 2021-11-27 06:32:47

借此机会再问个问题,

如果请求的地址 StatusCode是302,如果获得响应头中Location头。

谢谢。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文