2012-04-25 10 views
1

私は、C#.NETアプリケーションとJson.NETを使用したJSONを介してPHPサーバー側の間で何らかのコミュニケーションを起こそうとしています。私はJsonの文字列をPOSTしていますが、サーバー側の文字列にアクセスできません(または正しく送信していません)。 My $ _POST変数は空に見えますが、私はJson文字列にアクセスするためにどのキーを使用するのか分かりません。誰でも何かを提案できますか?Json.NETとPHPコミュニケーション

私のC#コード:

TestClass ts = new TestClass("Some Data", 3, 4.5); 
string json = JsonConvert.SerializeObject(ts); 

HttpWebRequest request = 
    (HttpWebRequest)WebRequest.Create("http://localhost/testJson.php"); 
request.Method = "POST"; 
request.ContentType = "application/json"; 
request.ContentLength = json.Length; 

StreamWriter sw = new StreamWriter(request.GetRequestStream()); 
sw.Write(json); 
sw.Close(); 

HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
StreamReader sr = new StreamReader(response.GetResponseStream()); 
string responseJson = sr.ReadToEnd(); 
sr.Close(); 

TestClass returnedTS = 
    JsonConvert.DeserializeObject<TestClass>(responseJson); 

私のPHPコード:

<?php 
    require("TestClass.php"); 
    $json = json_decode($_POST); 
    $ts = new TestClass(); 
    $ts->someString = $json['someString']; 
    $ts->someDouble = $json['someDouble']; 
    $ts->someInt = $json['someInt']; 
    $return_json = json_encode($ts); 
    echo $return_json; 
?> 

マイ出力:あなたが代わりにアプリケーション/ X-WWWのアプリケーション/ JSONを使用する必要が

<b>Warning</b>: json_decode() expects parameter 1 to be string, array given in 
<b>C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\testJson.p 
hp</b> on line <b>4</b><br /> 
{"someString":null,"someInt":null,"someDouble":null} 

答えて

2

-form-urlencoded。

多分それが役に立ちます!

関連する問題