4

単純な検索要求に 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

更新: HTTP/1.0 では動作しません...

4

2 に答える 2

2

以下を app.config または web.config に追加してみましたか?

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

明らかに、Expect: 100-continuein リクエスト ヘッダーを送信すると、「505: HTTP バージョンがサポートされていません」というエラーがスローされます。

期待100連

于 2015-11-20T19:03:39.013 に答える
1

その間、Bing 開発者フォーラムで回答を得ました。Microsoft は、HTTP 応答コードに対してほとんどの場合とは異なるセマンティクスを使用しているように思われ、505 は「SOAP 要求に問題がある」ことを意味することもあります。正しい名前空間を使用していないことがわかりました。それらを修正した後、リクエストは問題なく処理されました。

Bing フォーラムのスレッドへのリンクは次のとおりです。

于 2011-02-12T11:10:26.510 に答える