4

認証が必要な学校のWebプロキシを介してApacheWinkフレームワークを使用してJavaでRESTfulWebサービスを利用しようとしています

ClientConfig clientConfig = new ClientConfig();
clientConfig.proxyHost("proxy.school.com");
clientConfig.proxyPort(3128);
//nothing to set username and password :(

RestClient client = new RestClient(clientConfig);
Resource resource = client.resource("http://vimeo.com/api/v2/artist/videos.xml");
String response = resource.accept("text/plain").get(String.class);

私も使用しようとしましたBasicAuthSecurityHandlerが、Webプロキシではなく、Webサーバーに対して直接認証するために使用されているようです。

BasicAuthSecurityHandler basicAuthHandler = new BasicAuthSecurityHandler();
basicAuthHandler.setUserName("username");
basicAuthHandler.setPassword("password");
config.handlers(basicAuthHandler);

それでもHTTP407エラーコードで失敗します:プロキシ認証が必要です。

私はできる限りグーグルで検索しました。JavaクライアントからWebプロキシを介してWebサービスを利用するのにこれ以上良いものはありません。誰かが別のアイデアを持っている場合は、遠慮なく応答してください。

4

2 に答える 2

3

かなり大変でしたが、見つけました!ブラウザから作成されたHTTPリクエストをFiddlerでログに記録したところ、HTTP /1.1に関するRFC2616Proxy-Connectionなどの広範なドキュメントを読んだ後、とProxy-Authorizationが探していたものであることがわかりました。

だから私は私のJavaコードに送信されていた値をコピーして貼り付けました:

resource.header("Proxy-Connection", "Keep-Alive");
resource.header("Proxy-Authorization", "Basic encodedString");

encodedString私のブラウザから送信されているものはどこですか: username:passwordbase64エンコード

そして今では完璧に動作します:)

于 2010-06-11T16:25:58.103 に答える
1

この問題は[1]として発生し、ApacheWinkクライアント開発者が利用できるProxyAuthSecurityHandlerを追加することで解決されました。

[1]:https : //issues.apache.org/jira/browse/WINK-292 ApacheWinkJIRAの問題WINK-292

于 2010-07-26T18:38:50.340 に答える