首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在REST Assured中,我如何设置超时?

在REST Assured中,我如何设置超时?
EN

Stack Overflow用户
提问于 2017-10-23 20:58:29
回答 3查看 19.8K关注 0票数 21

我使用的是RestAssured 2.8.0,并且我正在尝试设置自己的超时(网关超时),所以如果我在X毫秒后没有得到响应,我想要中止。

我试过了:

代码语言:javascript
复制
public static ValidatableResponse postWithConnectionConfig(String url, String body, RequestSpecification requestSpecification, ResponseSpecification responseSpecification) {
    ConnectionConfig.CloseIdleConnectionConfig closeIdleConnectionConfig = new ConnectionConfig.CloseIdleConnectionConfig(1L, TimeUnit.MILLISECONDS);
    ConnectionConfig connectionConfig = new ConnectionConfig(closeIdleConnectionConfig);
    RestAssuredConfig restAssuredConfig = new RestAssuredConfig().connectionConfig(connectionConfig);


    return given().specification(requestSpecification)
            .body(body)
            .config(restAssuredConfig)
            .post(url)
            .then()
            .specification(responseSpecification);

}

或者

代码语言:javascript
复制
ConnectionConfig connectionConfig = new ConnectionConfig()
            .closeIdleConnectionsAfterEachResponseAfter(10L, TimeUnit.MILLISECONDS);
RestAssuredConfig restAssuredConfig = new RestAssuredConfig().connectionConfig(connectionConfig);

我还试着添加

代码语言:javascript
复制
.queryParam("SO_TIMEOUT", 10)

或者

代码语言:javascript
复制
.queryParam("CONNECTION_MANAGER_TIMEOUT", 10)

似乎什么都不起作用。它不会中止我的查询

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-10-24 22:29:20

您可以通过设置HTTP客户端参数来配置超时:

代码语言:javascript
复制
RestAssuredConfig config = RestAssured.config()
        .httpClient(HttpClientConfig.httpClientConfig()
                .setParam(CoreConnectionPNames.CONNECTION_TIMEOUT, 1000)
                .setParam(CoreConnectionPNames.SO_TIMEOUT, 1000));

given().config(config).post("http://localhost:8884");
票数 25
EN

Stack Overflow用户

发布于 2018-10-09 21:49:22

因为

这里有一种更新的方法。这适用于Apache HTTP client 4.5.3:

代码语言:javascript
复制
import org.apache.http.client.config.RequestConfig;
import org.apache.http.impl.client.HttpClientBuilder;

import io.restassured.RestAssured;
import io.restassured.config.HttpClientConfig;

..。

代码语言:javascript
复制
RequestConfig requestConfig = RequestConfig.custom()
    .setConnectTimeout(5000)
    .setConnectionRequestTimeout(5000)
    .setSocketTimeout(5000)
    .build();

HttpClientConfig httpClientFactory = HttpClientConfig.httpClientConfig()
    .httpClientFactory(() -> HttpClientBuilder.create()
        .setDefaultRequestConfig(requestConfig)
        .build());

RestAssured.config = RestAssured
    .config()
    .httpClient(httpClientFactory);
票数 7
EN

Stack Overflow用户

发布于 2021-03-02 00:22:15

下面的配置对我有效。

代码语言:javascript
复制
RestAssured.config=RestAssuredConfig.config()
                        .httpClient(HttpClientConfig.httpClientConfig()
                                .setParam("http.socket.timeout",1000)
                                .setParam("http.connection.timeout", 1000));
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46889970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档