Webサービスの使用で奇妙な問題が発生しました:
クライアントとして、「type-content」ヘッダーを設定せずにフォームをREST WebサービスにPOSTすると、問題なく動作します。サーバーで電話がかかってきて、Jsonテキストが利用可能になりました。
クライアントとして、POSTリクエストのcontent-typeヘッダーを「application / json」に設定すると、サーバーは「Bad Request(400)」で応答します。
Webサービスの方法は次のとおりです。
<WebInvoke(UriTemplate:="Login", Method:="POST")>
Public Function LoginFormAccess(data As IO.Stream) As String
(...)
end function
「Application/Json」について言及しない場合は、データストリームに投稿されたクライアントのjsonタイプの本文を取得できます。そうした場合、BadRequestの回答が得られます。
コンテンツタイプの値に関して、なぜこれほど大きな動作の違いがあり、何がそのような違いを提供するのでしょうか。メソッドに別のタイプのパラメーターが必要ですか、それとも他の何かを変更またはチェックする必要がありますか?
追加:コンテンツタイプが「Application / JSON」で、本文が空の場合、機能します...!
注1:通話に応答するクラスがインスタンス化されます。(new()のトレースはそれを証明します)。したがって、問題は、サーバーがそのオブジェクトを呼び出すための適切なメソッドを見つけられないことであるようです...
注2:さまざまなクライアントを使用してこの問題が発生したため、サーバー側の問題であると確信しています。
注3:WCFRESTサービスアプリケーションテンプレートを使用してプロジェクトを作成しました。
注4:「ResponseFormat=WebMessageFormat.Json」および「RequestFormat=WebMessageFormat.Json」に言及しても役に立ちません。