2013-04-26 88 views
0

合格後自定義對象我有以下簽名的WCF服務方法:序列化WCF

public string CTNotification(JSONRecordingCompletedNotification content) 
     { 

我想創建一個客戶端,並使用它。我已經寫了下面的代碼,但它給錯誤:

using (StreamReader sr = new StreamReader(Server.MapPath("~/json.txt"))) 
       { 
        string serviceBaseUrl = ConfigurationManager.AppSettings["serviceurl"].ToString() + "CTNotification"; 
        string conversationId = ConfigurationManager.AppSettings["conversationId"].ToString(); 

        String line = sr.ReadToEnd(); 
        string jsonText = line; 
        string body = jsonText; 

       JSONRecordingCompletedNotification RecordingCompletedNotification = new JavaScriptSerializer().Deserialize<JSONRecordingCompletedNotification>(body); 

       HttpWebRequest request = (HttpWebRequest)WebRequest.Create(serviceBaseUrl); 
       request.Method = "POST"; 
       request.ContentType = "application/json";     



       using (StreamWriter writer = new StreamWriter(request.GetRequestStream())) 
       { 
        writer.Write(RecordingCompletedNotification); 
       } 

       HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
       Label1.Text = response.ToString(); 
      } 

我獲得以下錯誤:

The remote server returned an error: (400) Bad Request. 
+0

您需要使用啓用跟蹤,看看有什麼引擎蓋下到底發生了改變的內容類型。 http://msdn.microsoft.com/en-us/library/ms733025.aspx – sebagomez 2013-04-26 13:57:31

+0

我做得正確嗎? – DotnetSparrow 2013-04-26 14:02:33

+1

我這麼認爲......但我總是認爲我正確地做到了:) – sebagomez 2013-04-26 14:14:11

回答

0

我會建議你使用任何的lib對JSON序列化和反序列化

  1. json.net

  2. fastjson

request.ContentType = "application/json; charset=utf-8";