我试图使用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

<强>更新: 这不是一个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

<强>更新: 它也不会与HTTP / 1.0顺便说一句...

工作
有帮助吗?

解决方案 2

在此期间我得到了我在冰开发者论坛的答案。看来,如果微软是那种用不同的语义比大多数HTTP响应代码和505也均“有些事情不对您的SOAP请求” 。原来我没有使用正确的命名空间。固定它们后,通过请求就好去。

下面是链接到线程在冰论坛。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top