7

私はJava用のGoogleHTTPクライアントライブラリを使用して、単純な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);
}
4

1 に答える 1

7

これは、 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();

これはあなたのニーズに十分ではありませんか?

于 2013-01-21T04:42:45.660 に答える