2016-10-30 11 views
1

C#でPOSTを使用して辞書をDjangoサーバーに送信しようとしています。 サーバーは要求を受信し、200のメッセージで確認応答しますが、空のマルチバリューディクショナリを受信します。POST C#を使用して送信された辞書が空です。

ここでは、POSTリクエストを送信しているクライアントがあります。

public class Hello1 
{ 
    public static void Main() 
    { 
     Console.WriteLine("Request Initiating"); 

     using (var wb = new WebClient()) 
     { 
      var data = new NameValueCollection(); 


      data["key1"] = "test"; 
      data["key2"] = "TEST2"; 
      data["key3"] = "NA"; 

      string url = "http://10.34.150.153:8000/key_detect/detect/"; 
      var response = wb.UploadValues(url, "POST", data); 
      string result = System.Text.Encoding.UTF8.GetString(response); 

      Console.WriteLine(result); 
      Console.ReadLine(); 
     } 
    } 
} 

答えて

0

この記事を参照してください: POSTing JSON to URL via WebClient in C#

あなたはそれをアップロードする前に、JSONにデータをシリアル化する必要があります。

var data = new NameValueCollection(); 
data["key1"] = "test"; 
data["key2"] = "TEST2"; 
data["key3"] = "NA"; 

using (var client = new WebClient()) 
{ 
    var dataString = JsonConvert.SerializeObject(data); 
    client.Headers.Add(HttpRequestHeader.ContentType, "application/json"); 
    client.UploadString(new Uri("http://www.contoso.com/1.0/service/action"), "POST", dataString); 
} 

前提条件:Json.NET library

関連する問題