2013-06-29 24 views
0

如何發佈從c#windows應用程序到php頁面的json字符串?將json數據從c#windows應用程序發佈到php頁面

我正在使用下面的代碼,但它從PHP頁面返回空字符串?

string Uname, pwd, postData, postData1; 
      Uname = txtUname.EditValue.ToString(); 
      pwd = txtPassword.EditValue.ToString(); 

      List<request1> JSlist = new List<request1>(); 
      request1 obj = new request1(); 
      obj.emailid = Uname; 
      obj.password = pwd; 
      JSlist.Add(obj); 

      JavaScriptSerializer serializer = new JavaScriptSerializer(); 
      string s; 
      s = serializer.Serialize(obj); 

      HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://lab.amusedcloud.com/test/login_action.php"); 

      request.Method = "POST"; 
      request.ContentType = "application/x-www-form-urlencoded"; 
      byte[] byteArray = Encoding.ASCII.GetBytes(s); 
      request.ContentLength = byteArray.Length; 
      Stream dataStream = request.GetRequestStream(); 
      dataStream.Write(byteArray, 0, byteArray.Length); 
      dataStream.Close(); 

      WebResponse response = request.GetResponse(); 
      MessageBox.Show(((HttpWebResponse)response).StatusDescription); 
      dataStream = response.GetResponseStream(); 

      StreamReader reader = new StreamReader(dataStream); 
      string responseFromServer = reader.ReadToEnd(); 
      MessageBox.Show(responseFromServer); 

      reader.Close(); 
      dataStream.Close(); 
      response.Close(); 

PHP

<?php 
$json_array = json_decode($_POST['json']); 

?> 

連接成功建立,但基於ContentType屬性這個PHP頁面返回array(0){}

+0

你期待PHP頁面返回什麼?目前該代碼不輸出任何內容。 – David

+0

您是否嘗試過使用chrome或fiddler的開發人員工具檢查流量並查看問題出在哪裏? – saamorim

回答

0

,它看起來像你應該編碼您發送到PHP腳本的內容形式。如果多數民衆贊成的情況下,你需要確保你要發送的內容是鍵/值格式:

[key]=[value] 

在你的情況下,它看起來像PHP腳本需要用鑰匙「JSON」的參數,所以你發送的數據會是這樣的:

"json=" & s 

希望有所幫助。

相關問題