2017-04-01 6 views
21

私は現在、wp8.1アプリケーションC#を開発しています.JsonオブジェクトでjsonでPOSTメソッドを実行していますbm)をtextbox.textsから削除します。 ここに私のコードです。どのように私は同じtextbox.textを取って、それらをコンテンツタイプ=アプリケーション/ x-www-form-urlencodedとしてPOSTしますか?それのコードは何ですか?HTTPclientを使用してPOSTする方法content type = application/x-www-form-urlencoded

  Profile bm = new Profile(); 
      bm.first_name = Names.Text; 
      bm.surname = surname.Text; 

      string json = JsonConvert.SerializeObject(bm); 

      MessageDialog messageDialog = new MessageDialog(json);//Text should not be empty 
      await messageDialog.ShowAsync(); 

      HttpClient client = new HttpClient(); 
      client.DefaultRequestHeaders.Clear(); 
      client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 
      client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json"); 

      byte[] messageBytes = Encoding.UTF8.GetBytes(json); 
      var content = new ByteArrayContent(messageBytes); 
      content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); 
      var response = client.PostAsync("myapiurl", content).Result; 
+0

私のAPIは、あなたはまた、以来、 'FormUrlEncodedContent'のコンストラクタに辞書を渡すことができ –

答えて

34
var nvc = new List<KeyValuePair<string, string>>(); 
nvc.Add(new KeyValuePair<string, string>("Input1", "TEST2")); 
nvc.Add(new KeyValuePair<string, string>("Input2", "TEST2")); 
var client = new HttpClient(); 
var req = new HttpRequestMessage(HttpMethod.Post, url) { Content = new FormUrlEncodedContent(nvc) }; 
var res = await client.SendAsync(req); 

それとも

var dict = new Dictionary<string, string>(); 
dict.Add("Input1", "TEST2"); 
dict.Add("Input2", "TEST2"); 
var client = new HttpClient(); 
var req = new HttpRequestMessage(HttpMethod.Post, url) { Content = new FormUrlEncodedContent(dict) }; 
var res = await client.SendAsync(req); 
+3

コンテンツタイプ=アプリケーション/ x-www-form-urlencodedで許可されます辞書は 'KeyValuePair'の' IEnumerable'です。 –

+0

***タスクメソッドで***を待っていますか? – Kiquenet

+0

@Kiquenetはい、「asyncタスク」メソッド –

関連する問題