2017-06-15 32 views
0

我想消費與WebClient的一個REST API,這裏是我的代碼和它的投擲Web客戶端發佈數據的問題

「validationObjective」不請求發送。

但我加在我的留言本validationobjective

任何人都可以在這方面的幫助?

WebClient webClient = new WebClient(); 
string boundary = "------------------------" + DateTime.Now.Ticks.ToString("x"); 
webClient.Headers.Add("Content-Type", Convert.ToString("multipart/form-data; validationObjective=\"test\";boundary=") + boundary); 
var fileData = webClient.Encoding.GetString(xmlFile); 

var package = string.Format("--{0}" + Environment.NewLine + "Content- 
    Disposition: form-data; name=\"ccdaFile\";validationObjective=\"test\"; 
    filename=\"{1}\"" + Environment.NewLine+ "Content-Type: {2}" 
    + Environment.NewLine + "{3}" + Environment.NewLine + "--{0}--" 
    + Environment.NewLine, boundary, "filename", "multipart/form-data", fileData); 

var nfile = webClient.Encoding.GetBytes(package); 
var resp = webClient.UploadData("url", "POST", nfile); 
var bytesAsString = Encoding.ASCII.GetString(resp); 
+0

這是完全脫離你的問題的主題,但請使用StringBuilder進行字符串連接。 – Ortund

+1

這完全取決於如何實現該API。對此我們不能說任何有用的東西。我的猜測是,它期望它作爲一個表單數據元素,而不是在Content-Type頭中。 – CodeCaster

+0

我在這裏錯過了什麼,什麼是「驗證目標」?順便說一句我看到在這種情況下StringBuilder沒有好處 – Liam

回答

0

我修正了這個問題。我們需要發送查詢字符串中的參數,如下所示

webClient.QueryString.Add("referenceFileName", "sdfdsF"); 
webClient.QueryString.Add("validationObjective", "sdfdsF"); 

這適用於我!