如何获得第一个HTTP(重定向)响应?

时间:2016-06-09 12:22:35

标签: http go

我使用Go http包开发了一个代码,这样我就可以获得任何url的状态代码。但经过一些挖掘后,我检查了为什么请求需要很长时间,我发现URL保持重定向,直到我获得状态200 OK。

我想设法从Web服务器获得第一个响应。我不想总是200 OK,无论它给我什么我都想接受它。我该怎么办?

实施例: 当我使用cURL获取代码时,https://apple.com已回复301永久移动。 这是我想要的回复,而不是重定向到200。

1 个答案:

答案 0 :(得分:1)

http.Client提供了通过CheckRedirect成员控制该功能的可能性。

从上面的链接:

// CheckRedirect specifies the policy for handling redirects.
// If CheckRedirect is not nil, the client calls it before
// following an HTTP redirect. The arguments req and via are
// the upcoming request and the requests made already, oldest
// first. If CheckRedirect returns an error, the Client's Get
// method returns both the previous Response and
// CheckRedirect's error (wrapped in a url.Error) instead of
// issuing the Request req.
//
// If CheckRedirect is nil, the Client uses its default policy,
// which is to stop after 10 consecutive requests.
ct func(req *Request, via []*Request) error

免责声明:未经测试。