0

私は残りのサービスと通信しようとしていますが、これは常に送信されたパラメーターが空であることを返しますが、クライアントコンソールでは彼は満たされています。

インターフェイスクラスは次のとおりです。

[ServiceContract]
    public interface IMyTest
    {
        [OperationContract]
        [WebInvoke(UriTemplate = "TestMe", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, Method = "POST", BodyStyle = WebMessageBodyStyle.Wrapped)]
        string TestMe(string parameter);        
    }

私のsvcメソッド:

    public string TestMe(string parameter)
            {
            if (string.IsNullOrEmpty(parameter)
                return "Empty";
            return "OK";
            }

私の顧客 :

string content = "{\"Param\" : \"TEST\"}";
var request = WebRequest.Create("http://localhost/MyTestURL/MyTest.svc/TestMe");
                request.Method = "POST";
                request.ContentType = "application/json";
                using (var writer = new StreamWriter(request.GetRequestStream()))
                {
                    writer.Write(content);
                }

                var res = (WebResponse)request.GetResponse();

                StreamReader reader =
                  new StreamReader(res.GetResponseStream(), Encoding.UTF8);
                System.Console.WriteLine("Response");
                System.Console.WriteLine(reader.ReadToEnd().ToString());

私のクライアントコードは大丈夫ですか?私の設定は大丈夫ですか?...

ありがとう。

4

2 に答える 2

0

ストリーム パラメータを使用してメソッドを実装するのに役立つ優れたチュートリアルを作成しました。ありがとう。

于 2012-08-02T16:12:56.403 に答える
0

リクエストを文字列として取得する場合は、String パラメータの代わりに Stream を使用します

public void TestMe(Stream dataStream)

そうでない場合は、シリアル化可能な Json オブジェクトをパラメーターとして使用します。

于 2012-08-01T18:16:42.353 に答える