【问题标题】:Jsoup encoding in post requests发布请求中的 Jsoup 编码
【发布时间】:2012-07-25 22:58:07
【问题描述】:

我在向西里尔文发布 POST 请求时遇到了这个问题。我一直在使用 JSoup 并尝试过类似的东西,并且该网站使用 win1251 编码

。 header ("Content-Type", "application / x-www-form-urlencoded; charset = UTF-8")

但它不起作用?可能是什么问题

【问题讨论】:

    标签: java android jsoup


    【解决方案1】:

    问题解决了。我已经编辑了 jsoup 的源代码以使其工作。

    【讨论】:

    • 你能更详细地说明你做了什么吗?
    • 解释一下这个plx
    【解决方案2】:

    我已经找到了一个解决方案,无需更改 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);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-19
      • 1970-01-01
      • 2015-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-14
      相关资源
      最近更新 更多