向西里尔语发布POST请求时遇到此问题。我一直在使用JSoup并尝试类似的东西,该网站使用win1251编码
。标题(“Content-Type”,“application / x-www-form-urlencoded; charset = UTF-8”)
但它不起作用?可能是什么问题
答案 0 :(得分:0)
我已经为此找到了解决方案而不更改jsoup代码(包括XMLHttpRequest调用):
注意:网站是我自己的bean,其中包含有关我正在包装的网站的信息
String postParams[]=null;
if (site.isPostRequest()) {
String urlParams[]=url.split("\\?");
url=urlParams[0];
postParams=urlParams[1].split("[=|&]");
}
Integer timeout=site.getTimeout();
if (timeout==null)
timeout=2*1000;
if (StringUtil.isEmpty(site.getEncoding()))
site.setEncoding(UTF_8);
URL _url=new URL(url);
URLConnection con=_url.openConnection();
con.setConnectTimeout(timeout);
if (site.isPostRequest()) {
Connection con2=Jsoup.connect(url);
if (site.isXMLHttpRequest()) {
con2.header("X-Requested-With", "XMLHttpRequest");
con2.referrer(site.getProtocol()+site.getDomain());
}
con2.header("Accept-Charset", site.getEncoding());
con2.data(postParams);
doc=con2.post();
doc.outputSettings(doc.outputSettings().charset(site.getEncoding()));
} else {
if (site.isXMLHttpRequest()) {
con.setRequestProperty("X-Requested-With", "XMLHttpRequest");
con.setRequestProperty("referrer",site.getProtocol()+site.getDomain());
}
doc=Jsoup.parse(con.getInputStream() , site.getEncoding(), url);
}
答案 1 :(得分:-2)
问题解决了。我已经编辑了jsoup的源代码以使其工作。