Java 使用重定向模拟HttpResponse
如何创建org.apache.http.HttpResponse对象,该对象看起来像来自永久返回301 MOVED_的网页的响应 最重要的是-在哪里放置重定向url 我正在测试web爬行应用程序。我已经为我的HttpClient创建了mock,我想在其中创建一个响应,该响应将模拟网页重定向时返回的响应,例如从http重定向到https或其他域 例如,对于200 OK,我以这种方式创建响应:Java 使用重定向模拟HttpResponse,java,apache,Java,Apache,如何创建org.apache.http.HttpResponse对象,该对象看起来像来自永久返回301 MOVED_的网页的响应 最重要的是-在哪里放置重定向url 我正在测试web爬行应用程序。我已经为我的HttpClient创建了mock,我想在其中创建一个响应,该响应将模拟网页重定向时返回的响应,例如从http重定向到https或其他域 例如,对于200 OK,我以这种方式创建响应: private ProtocolVersion http11 = new ProtocolVersion
private ProtocolVersion http11 = new ProtocolVersion("HTTP", 1, 1);
private StatusLine HTTP_200_OK = new BasicStatusLine(http11, response.Status.OK.getStatusCode(), Response.Status.OK.getReasonPhrase());
BasicHttpResponse response = new BasicHttpResponse(HTTP_200_OK);
但是我在哪里放置重定向url有问题。重定向url包含在Http头(
位置
)中,因此根据api文档,我认为这非常简单:
HttpResponse res = new BasicHttpResponse (new BasicStatusLine(HttpVersion.HTTP_1_1, HttpStatus.SC_MOVED_PERMANENTLY, "");
res.setHeader(HttpHeaders.LOCATION, "http://some.new/url");
谢谢您!我错过了关键信息,即它应该位于字段名为HttpHeaders.LOCATIONYeah的标题中,请查看更多信息。MDN文档非常有助于学习Http状态代码和头等等。