2016-06-21 9 views
-1

hey wie kann ich dies in C# -Code replizieren. Ich habe die Datei bereits als byte [] oder stream form.Datei hochladen - Multiform Daten

$ curl https://someaddress.com/ 
-F parameter1='abc123' \ 
-F [email protected] \ 
-F parameter2='abc123' 

[UPDATE]

Ich habe versucht, RestSharp aber ich habe Antwort mit dem Statuscode 0. Eigentlich ist es nicht die Anforderung scheint sogar zu senden. { „Die zugrundeliegende Verbindung wurde geschlossen: ein unerwarteter Fehler bei einer senden.“}

var client = new RestClient("https://someaddress.com"); 

RestRequest request = new RestRequest("/",Method.POST); 
request.AddHeader("Content-Type", "multipart/form-data"); 
request.AddHeader("Accept", "application/json"); 

request.AddParameter("parameter1", "abc123"); 
request.AddParameter("parameter2", "abc123"); 

request.AddFile("fileData", fileStream.CopyTo, filename); 
//request.AddFile("fileData", fileByteArray, filename); 

var response= client.Execute(request); 

[UPDATE 2]

Dies ist der Stacktrace, die ich innerhalb des Antworterrorfeld sehen kann.

InnerException = {"Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host."} 
at System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) 
at System.Net.HttpWebRequest.GetRequestStream() 
at RestSharp.Http.WriteRequestBody(HttpWebRequest webRequest) 
at RestSharp.Http.PostPutInternal(String method) 
+0

starten, indem Ihr, was Sie versucht haben bereits –

+0

ich versucht habe RestSharp aber es scheint nicht zu funktionieren. Ich werde den Beitrag mit Code – Adam

Antwort

0

Ich habe versucht, HttpWebRequest Klasse oder ein anderes Projekt, aber nichts mit. Ich habe auch versucht, das Projekt herunterzuladen und zu bauen, aber es hat nicht funktioniert. Nach einiger Zeit stellte ich fest, dass das Problem das Sicherheitsprotokoll war. Also habe ich diese Zeile hinzugefügt und es hat funktioniert.

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

0

Ja, entweder Sie HttpWebRequest Class verwenden können (OR) Sie RestSharp NuGet Package für gleiches

+0

aktualisieren Ich habe RestSharp versucht, aber es scheint nicht zu funktionieren. Ich werde den Beitrag mit Code – Adam

+0

aktualisieren Ich habe versucht, mit HttpWebRequest-Klasse, aber es blieb in request.GetReqeustStream(). Es führt die requestStream.Write-Methode nie aus. Stream requestStream = request.GetRequestStream(); requestStream.Write (formData, 0, formData.Length); requestStream.Close(); Rückgabe request.GetResponse() als HttpWebResponse; Ich habe den Code hier http://www.briangrinstead.com/blog/multipart-form-post-in-c verwendet – Adam