我使用Go http包开发了一个代码,这样我就可以获得任何url的状态代码。但经过一些挖掘后,我检查了为什么请求需要很长时间,我发现URL保持重定向,直到我获得状态200 OK。
我想设法从Web服务器获得第一个响应。我不想总是200 OK,无论它给我什么我都想接受它。我该怎么办?
实施例: 当我使用cURL获取代码时,https://apple.com已回复301永久移动。 这是我想要的回复,而不是重定向到200。
答案 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
免责声明:未经测试。