配置重定向策略

时间:2015-08-18 08:17:41

标签: java apache-httpclient-4.x rest-assured

我正在测试一个端点,该端点返回带有空格的Location标头(无法修复),我收到org.apache.http.ClientProtocolException。根据其他答案,我必须创建RedirectStrategy并使用%20对空格进行编码。

通过文档查看我发现了一个关于HTTP Client配置的小部分,但它似乎只包含基本信息。

如何将RedirectStrategy设置为RestAssured以使用Location%20标题中的空格进行编码?

1 个答案:

答案 0 :(得分:2)

HttpClientConfig允许您设置可以指定重定向策略的自定义HttpClient实例。不幸的是,HttpClient实例必须扩展org.apache.http.impl.client.AbstractHttpClient才能使用REST Assured。这是一个应该有效的例子:

given().config(RestAssured.config().httpClient(HttpClientConfig.httpClientConfig().httpClientFactory(() -> {
        DefaultHttpClient httpClient = new DefaultHttpClient();
        httpClient.setRedirectStrategy(..);
        return httpClient;
    }))). ..

您还可以为所有测试配置此项:

RestAssured.config = RestAssured.config().httpClient(HttpClientConfig.httpClientConfig().httpClientFactory(() -> {
            DefaultHttpClient httpClient = new DefaultHttpClient();
            httpClient.setRedirectStrategy(..);
            return httpClient;
        }); 

request specification