我使用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);
}
答案 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();
这不足以满足您的需求吗?