如何用golang忽略内容类型?

时间:2016-12-29 08:16:47

标签: java go

有人可以告诉我如何忽略内容类型吗?我可以使用java在Jsoup中调用ignoreContentType方法,但是我无法找到任何方法可以做到这一点。希望有人能告诉我,谢谢。

Connection.Response response = Jsoup.connect("http://example.com/")
            .ignoreContentType(true)
            .execute();
System.out.println(response.body());

2 个答案:

答案 0 :(得分:0)

Java jsoup ignoreContentType在解析响应时会忽略文档的Content-Type

Go中的ResponseWriter默认情况下会将Content-Type集添加到将初始512字节写入数据传递给DetectContentType的结果中。

您可以实施自己的ResponseWriter,将自己的Content-Type设置为"",以便忽略从响应数据中推断出的任何(可能不正确的)内容类型。

func (writer MyOwnResponseWriter) Write(data []byte) (int, error) {
    writer.Header().Set("Content-Type", "")
    return len(data), nil
}

JimB建议in the comments设置您自己的内容类型,因为server.go包含:

//If the Header does not contain a Content-Type line, 
// Write adds a Content-Type set to the result of 
// passing the initial 512 bytes of written data toDetectContentType.

答案 1 :(得分:0)

我在阅读Jsoup的源代码后解决了我的问题,只需设置响应头

resp.Header.Set("Transfer-Encoding", "chunked")
resp.Header.Set("Content-Type", "application/json")
谢谢你们。