2017-02-14 42 views
0

我有web服務,我想發送到這個網絡服務的參數值&鍵像令牌=「」和文件如何發送的身體參數,並在C#與HttpClient的文件

client - >>>>>>>>>>>send>>>>>>>>>web service 
token = "exmple" 
userfile = sound file 

web service (get both) >>>>>>>>send>>>>>> client 
result as Json 

等爲郵差: enter image description here

我在c#中編寫這段代碼,但web服務無法獲得令牌和文件。但不工作。我錯了嗎?意味着數據發送到Web服務。但服務不能獲得令牌和文件。

 byte[] array; 
     string filename; 
     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", "111fhgbbrvjndskbsd" }, 
      }; 
      var content = new FormUrlEncodedContent(values); 
      requestContent.Add(content); 
      var response = await client.PostAsync("example.com/upload", requestContent); 
      var responseString = await response.Content.ReadAsStringAsync(); 
      txtbox.Text = responseString.ToString(); 
     } 
+0

你能解釋一下你有哪些例外嗎? – kat1330

+0

當運行我的代碼併發送到web service.web服務結果是未經授權!.means令牌不發送到Webservice。 – user2254798

+0

你可以跟蹤你的請求,並檢查標記是否正確添加到標題? – kat1330

回答

0

Here是如何使用Multipart MIME的一個示例。

至於你爲什麼不在服務器端收到令牌,我認爲你需要在服務器端處理這種情況。 (告訴它從哪裏得到令牌)。

具體取決於您的身份驗證的工作方式,我建議您閱讀this文章,瞭解您放置令牌的位置的方式。

+0

謝謝,但我的代碼在winform – user2254798

+0

是的,但你仍然使用請求。相同的規則適用。 – PopaPetru