配置重定向策略

Configuring redirect strategy

我正在测试 returns Location header 带空格(无法修复)的端点,我收到 org.apache.http.ClientProtocolException。根据其他答案,我必须创建 RedirectStrategy 并用 %20 编码空格。

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

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

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.