Как избежать ошибки «505: версия HTTP не поддерживается»? - PullRequest
4 голосов
/ 08 августа 2010

Я пытаюсь использовать Bing SOAP API для простого поискового запроса. Но теперь, когда я наконец понял, как отправить запрос с использованием JAX-WS, я снова застрял. Я получаю ответ com.sun.xml.internal.ws.client.ClientTransportException: The server sent HTTP status code 505: HTTP Version not supported когда я отправляю запрос. Кто-нибудь может мне помочь?

Я использую динамический вызов с JAX-WS 2.0, если это имеет какое-либо значение.

Dispatch<SOAPMessage> dispatch = service.createDispatch(
    portName, SOAPMessage.class, Service.Mode.MESSAGE);
MessageFactory messageFactory = ((SOAPBinding) dispatch.getBinding())
    .getMessageFactory();
SOAPMessage request = messageFactory.createMessage();
// Add content to the request
SOAPMessage response = dispatch.invoke(request);

Wireshark сообщает мне, что заголовок запроса содержит POST /soap.asmx HTTP/1.1, и ответ возвращается также с версией HTTP / 1.1. Разве это не значит, что все в порядке?

Спасибо, moxn

UPDATE : Это не специфическая ошибка JAX-WS. Я реализовал связь через Commons HTTPClient и все еще получаю те же 505.

После заголовков из запроса HTTPClient:

Content-Length: 435
Content-Type: text/xml
Host: api.bing.net:80
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.0.1 (java 1.5)
Expect: 100-Continue

UPDATE : Это также не работает с HTTP / 1.0 кстати ...

Ответы [ 2 ]

2 голосов
/ 20 ноября 2015

Вы пытались добавить следующее в app.config или web.config?

<configuration>
  <system.net>
    <settings>
      <servicePointManager expect100Continue="false" />
    </settings>
  </system.net>
</configuration>

Очевидно, что отправка Expect: 100-continue в заголовке запроса вызывает ошибку «505: HTTP-версия не поддерживается».

Expect 100-continue

1 голос
/ 12 февраля 2011

Тем временем я получил свой ответ на форуме разработчиков Bing.Кажется, что Microsoft использует своего рода семантику для кодов ответов HTTP, отличную от большинства, и 505 также может означать «Что-то не так с вашим запросом SOAP» .Оказывается, я не использовал правильные пространства имен.После их исправления запрос прошел нормально.

Вот ссылка на тему на форуме Bing.

...