2017-06-15 4 views
0

Ich mag ein REST-API mit webclient konsumieren, hier ist mein Code und seineWebClient Post-Daten Ausgabe

"validationObjective" nicht in der Anfrage gesendet zu werfen.

Aber ich hinzugefügt, um diese validationobjective in meinem Beitrag

jemand auf diese helfen?

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

Dies ist völlig off-Thema aus Ihrer Frage, aber bitte StringBuilder für String-Verkettung lieber. – Ortund

+1

Dies hängt vollständig davon ab, wie diese API implementiert ist. Wir können dazu nichts Nützliches sagen. Meine Vermutung ist jedoch, dass es erwartet, dass es als ein Formular-Datenelement, nicht in der Content-Type-Header. – CodeCaster

+0

Fehle ich hier etwas, was ist ein "validationObjective"? BTW Ich sehe keinen Vorteil in einem StringBuilder in diesem Szenario – Liam

Antwort

0

Ich habe das Problem behoben. Wir müssen den Parameter in Querystring wie unten senden

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

Dies funktioniert für mich!