我试图使用eclipse或intellij向api发送一个get请求作为使用java / junit的测试的一部分,并确保框架工作。
每个请求都失败,并显示以下消息
2018年3月13日下午1:29:56 org.apache.http.impl.client.DefaultHttpClient tryConnect 信息:连接到{s}时捕获的I / O异常(java.net.SocketException) - > http://swapi.co:443:连接重置
顺便说一下,我在使用代理的工作机器/网络上尝试这个
我可以使用邮递员手动发送相同的请求,这很好用,所以我不认为服务器端有问题。
有没有人知道我的ide中是否需要更改某些设置才能使其正常工作?
供参考,这是我试图运行的代码:
@Test
public void canGetLuke(){
given().relaxedHTTPSValidation().
when().get("http://swapi.co/api/people/1/?format=json").
then().
assertThat().
body("name",
equalTo("Luke Skywalker"));
}
答案 0 :(得分:0)
在Run configurations
或Debug configurations
下,在Arguments
标签中,您可以添加VM将使用的代理设置。尝试使用代理主机和端口设置以下参数:
-Dhttp.proxyHost="your.proxy.com"
-Dhttp.proxyPort="8080"
答案 1 :(得分:0)
我最后做了以下其中一项:
将代理添加到方法:
@Test
public void canGetLuke(){
given().proxy("my.proxy.com", 8080).
when().get("https://swapi.co/api/people/1/?format=json").
then().
assertThat().
body("name",
equalTo("Luke Skywalker"));
}
或在@Before方法中使用代理设置,如下所示:
@Before
public void setProxy() {
proxy("my.proxy.com", 8080);
}
上述两种方法都适用于我 还必须将请求发送为https
答案 2 :(得分:0)
要扩展@ JPinzon01的答案,您可能需要设置HTTP和HTTPS设置
HTTP
-Dhttp.proxyHost="your.proxy.com"
-Dhttp.proxyPort="8080"
HTTPS
-Dhttps.proxyHost="your.proxy.com"
-Dhttps.proxyPort="8080"