HTTP POSTを使用してWCFサービスを呼び出そうとしていますが、サービスは400エラーを返します。私はこれがOperationContractか、POSTをやっているかどうか分からない。これは、契約は、サーバー側で次のようになります。WCFサービスへのHTTP POST
[OperationContract, WebInvoke(BodyStyle = WebMessageBodyStyle.Wrapped)]
Stream Download(string username, int fileid);
そして、ここでは、私がテストコンソールアプリケーションを通じてサービスを起動しようとしている方法は次のとおりです。
HttpWebRequest webRequest = WebRequest.Create("http://localhost:8000/File/Download") as
HttpWebRequest;
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";
byte[] bytes = Encoding.ASCII.GetBytes("username=test&fileid=1");
Stream os = null;
webRequest.ContentLength = bytes.Length;
os = webRequest.GetRequestStream();
os.Write(bytes, 0, bytes.Length);
os.Close();
WebResponse webResponse = webRequest.GetResponse();
編集:私はそれをしなければなりません私の目標はサービスをテストすることであり、生のHTTP POSTを受け入れることではないことを明確にしてください。私がサービスをテストできる良い方法があれば、気軽に共有してください。
私は 'application/x-www-form-urlencoded'を使っていました。なぜなら、これは私がすべてのPOSTに使うと考えていたからです。私は 'application/json'について知らなかったので、私が望んだことが分かりました。ありがとうございました。 – rafale