2017-02-13 4 views
5

HttpClientでファイルとフォームデータを送信するにはどうすればよいですか?C#でHttpClientを使用してファイルとフォームデータを送信する方法

私は、ファイルまたはフォームデータを送信する2つの方法があります。しかし、私は両方のHTML形式のように送信したい。どうやってやるの?ありがとう。ここで私は、フォームの情報を投稿するために使用しているコードやcsvファイルこれは、.NET 4.5のためである

 using (var httpClient = new HttpClient()) 
     { 
      var surveyBytes = ConvertToByteArray(surveyResponse); 

      httpClient.DefaultRequestHeaders.Add("X-API-TOKEN", _apiToken); 
      httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 

      var byteArrayContent = new ByteArrayContent(surveyBytes); 
      byteArrayContent.Headers.ContentType = MediaTypeHeaderValue.Parse("text/csv"); 

      var response = await httpClient.PostAsync(_importUrl, new MultipartFormDataContent 
      { 
       {new StringContent(surveyId), "\"surveyId\""}, 
       {byteArrayContent, "\"file\"", "\"feedback.csv\""} 
      }); 

      return response; 
     } 

  if (openFileDialog1.ShowDialog() == DialogResult.OK) 
    { 
     var client = new HttpClient(); 
     var requestContent = new MultipartFormDataContent(); 
     filename = openFileDialog1.FileName; 
     array = File.ReadAllBytes(filename); 
     var imageContent = new ByteArrayContent(array); 
     imageContent.Headers.ContentType = MediaTypeHeaderValue.Parse("audio/*"); 
     requestContent.Add(imageContent, "audio", "audio.wav"); 
     var values = new Dictionary<string, string> 
     { 
     { "token", "b53b99534a137a71513548091271c44c" }, 
     }; 
     var content = new FormUrlEncodedContent(values); 
     requestContent.Add(content); 
     var response = await client.PostAsync("localhost", requestContent); 
     var responseString = await response.Content.ReadAsStringAsync(); 
     txtbox.Text = responseString.ToString(); 
    } 
+1

既にフォーム/マルチモードを持っている。ただ追加投稿要求( 'requestContent')にもっと多くの項目があります。 – dlatikay

+0

どうすればいいのか説明してくれてありがとうございます。 – user2254798

答えて

8

は、これは私のコードです。

注MultipartFormDataContentで\」。MultipartFormDataContentでbugがあります。

4.5.1でMultipartFormDataContentが正しい引用符でデータをラップします。

+0

ありがとうございます。私は問題を解決するのに手伝ってもらえますか? – user2254798

+0

MultipartFormDataContentを使用して投稿してください。投稿しようとしているサイトの要件がわかりません。またはヘッダー?どのようなタイプのサイトは、あなたが期待して投稿していますか? – Fran

+0

これがあなたの質問に答えることができない場合は、あなたが達成しようとしているものについてさらに情報を追加してください。 – dlatikay

関連する問題