模拟提交 form post提交中文问题。
今天使用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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
借此机会再问个问题,
如果请求的地址 StatusCode是302,如果获得响应头中Location头。
谢谢。