Использовать спокойный веб-сервис через веб-прокси - PullRequest
4 голосов
/ 11 июня 2010

Я пытаюсь использовать спокойный веб-сервис в Java, используя Apache Wink Framework через мой школьный веб-прокси, требующий аутентификации

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, но, похоже, он используется для аутентификации непосредственно на веб-сервере, а не на веб-прокси

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

По-прежнему происходит ошибка с кодом ошибки HTTP 407. Требуется проверка подлинности прокси.

IЯ погуглил как мог, ничто не придумало лучшего, чтобы использовать веб-сервис от клиента Java через веб-прокси, если у кого-то есть другая идея, не стесняйтесь отвечать

Ответы [ 2 ]

3 голосов
/ 11 июня 2010

Хорошо, это было довольно сложно, но я нашел это!Я зарегистрировал запросы HTTP, которые были сделаны из моего браузера, с помощью Fiddler и обнаружил, что Proxy-Connection и Proxy-Authorization были тем, что я искал после прочтения обширной документации, такой как RFC 2616 о HTTP / 1.1

Поэтому я скопировал значения, которые были отправлены, в мой код Java:

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

, где encodedString - это то, что отправляется моим браузером: username:password base64 закодировано

И теперь оно отлично работает:)

1 голос
/ 26 июля 2010

Эта проблема была поднята как [1] ​​и с тех пор решена с добавлением ProxyAuthSecurityHandler, доступного для разработчиков клиентов Apache Wink.

[1]: https://issues.apache.org/jira/browse/WINK-292 Apache WinkJIRA выпуск WINK-292

...