获取Jsoup的原始帖子回复

时间:2012-03-25 19:49:12

标签: java http jsoup

我正在使用Jsoup将表单发布到网站,回复是纯文本,但Jsoup不知道内容类型。因此我使用ignoreContentType(true),因此Jsoup不会因为未知的内容类型而抛出异常。但是我无法弄清楚如何从Jsoup获取原始回复,文本包含一些特殊字符,Jsoup条带,Jsoups也添加了一个body和html标签 - 我不需要它,我只想要原始回复。如何获得原始回复?谢谢!

3 个答案:

答案 0 :(得分:5)

您可以使用Response#body()。 E.g。

String body = Jsoup.connect(url).execute().body();

或者如果您正在进行POST

String body = Jsoup.connect(url).method(Method.POST).data(data).execute().body();

答案 1 :(得分:1)

您可以从Response获取Connection对象,它包含原始字节数据。忽略内容类型,否则将在非文本数据上失败。如果您使用body(),则可能会使用默认字符集来破坏响应。

Connection conn = Jsoup.connect(url).ignoreContentType(true).method(Method.GET);
Connection.Response response = conn.execute();
byte[] raw = response.bodyAsBytes();

// if you want...
Document parsed = response.parse();

答案 2 :(得分:1)

我有同样的问题并分两步解决

1-收集回复

2-读取响应为字节并转换为字符串或解析为您想要的任何内容(json等)

Response resp = jsoup.connect(url).ignoreContentType(true).Method(Method.Post).execute();
String respStr = new String(resp.bodyAsBytes(), StandardCharsets.UTF_8);