使用代理与谷歌HTTP客户端库的Java(Using proxies with Google HTT

2019-08-06 08:12发布

我使用谷歌HTTP客户端库的Java进行简单的JSON请求和解析响应。 它运作良好时,我不通过代理。 但现在,我想,让我的用户使用代理(身份验证)功能在我的应用程序。 我看着在HttpTransport,HttpRequestFactory和HttpRequestInitializer类没有任何成功。

我只稍微修改到目前为止的例子(而且大多它被移除不必要的代码)。 所以在代码中添加我的代理设置?

static final HttpTransport HTTP_TRANSPORT = new NetHttpTransport();
static final JsonFactory JSON_FACTORY = new JacksonFactory();

<T> T get(String url, Class<T> type) throws IOException {
    HttpRequestFactory requestFactory =
            HTTP_TRANSPORT.createRequestFactory(new HttpRequestInitializer() {
                @Override
                public void initialize(HttpRequest request) {

                    request.setParser(new JsonObjectParser(JSON_FACTORY));
                }
            });
    HttpRequest request = requestFactory.buildGetRequest(new GenericUrl(url));
    return request.execute().parseAs(type);
}

Answer 1:

这似乎只是正常工作使用谷歌-HTTP客户端的认证代理:1.13.1-β

Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(PROXY_HOST, PROXY_PORT));
HttpTransport httpTransport = new NetHttpTransport.Builder().setProxy(proxy).build();

这不是足以满足您的需求?



文章来源: Using proxies with Google HTTP Client Library for Java