无法从eclipse / Intellij发送API请求

时间:2018-03-13 15:50:41

标签: java eclipse api proxy

我试图使用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"));

    }

另外,这些是eclipse中的网络连接settigns enter image description here

3 个答案:

答案 0 :(得分:0)

Run configurationsDebug 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"