我正在尝试将 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 版本。这不是说,没问题吗?
谢谢,莫克斯
更新:这不是 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 btw ...