我正在测试一个端点,该端点返回带有空格的Location
标头(无法修复),我收到org.apache.http.ClientProtocolException
。根据其他答案,我必须创建RedirectStrategy
并使用%20
对空格进行编码。
通过文档查看我发现了一个关于HTTP Client
配置的小部分,但它似乎只包含基本信息。
如何将RedirectStrategy
设置为RestAssured
以使用Location
对%20
标题中的空格进行编码?
答案 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;
});