Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用重定向模拟HttpResponse_Java_Apache - Fatal编程技术网

Java 使用重定向模拟HttpResponse

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

如何创建org.apache.http.HttpResponse对象,该对象看起来像来自永久返回301 MOVED_的网页的响应

最重要的是-在哪里放置重定向url

我正在测试web爬行应用程序。我已经为我的HttpClient创建了mock,我想在其中创建一个响应,该响应将模拟网页重定向时返回的响应,例如从http重定向到https或其他域

例如,对于200 OK,我以这种方式创建响应:

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状态代码和头等等。