在Google HTTP Client Library for Java中使用代理

时间:2013-01-10 16:24:06

标签: java http-proxy google-http-client

我使用Google HTTP Client Library for 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);
}

1 个答案:

答案 0 :(得分:5)

对于使用google-http-client的经过身份验证的代理,这似乎工作得很好:1.13.1-beta

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

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