2016-11-22 5 views
1

Ich brauche eine POST-Anfrage zu senden, die nicht mehrteilige Daten sein können, jede Antwort, die ich bisher gesehen habe ist seit RestSharp der http.cs Datei zu ändern, aber ich bin nicht mit wie man das macht.Senden Non Mehrteiliger Daten Via RestSharp

Mein Code:

 var POST_LTFSclient = new RestClient("https://xxxx"); 
     var POST_LTFSrequest = new RestRequest(Method.POST); 
     POST_LTFSrequest.AddHeader("Authorization", "Token " + Token); 
     POST_LTFSrequest.AddHeader("Accept", "Application/xml"); 
     POST_LTFSrequest.AddHeader("Content-type", "Application/xml"); 
     POST_LTFSrequest.AddFile("content", @"C:\xxx\xxx\xxx.xml"); 

Die letzte Zeile nicht nur sein kann:

 POST_LTFSrequest.AddFile(@"C:\xxx\xxx\xxx.xml"); 

aber wegen dieser jeder Versuch, Daten zu senden ist immer Mehrteiliger. Leider akzeptiert die empfangende Partei dies nicht.

Gibt es trotzdem, dies zu umgehen, die einfach zu implementieren ist, wenn nicht jemand mir erklären könnte, wie ich Restsharp ändere dies als eine Option zu ermöglichen.

Antwort

0

So stellt sich heraus, dass, weil RestSharp so viel geändert hat, die Antworten, die ich gefunden haben, sind alle veraltet ...

ich nicht in der Lage war zu diesem Thema mehr Informationen zu finden, so dass ich weg musste umziehen von restSharp.

Die Lösung, die ich mit gekommen sind hoch ist wie folgt:

using (WebClient client = new WebClient()) 
     { 
      client.Headers.Add("Content-Type", "application/xml"); 
      client.Headers.Add("Accept", "application/xml"); 
      client.Headers.Add("Authorization", "Token " + Token); 
      using (Stream fileStream = File.OpenRead(@"C:\xxx\yyy\zzz.xml")) 
      using (Stream requestStream = client.OpenWrite(new Uri("https://xxx/yyy/zzz"), "POST")) 
      { 
       fileStream.CopyTo(requestStream); 
      } 

     }