2016-11-22 19 views
1

我需要发送POST请求,该请求不能是多部分数据,到目前为止我看到的每个答案都是为RestSharp更改http.cs文件,但我不熟悉如何去做这件事。通过RestSharp发送非多部分数据

我的代码:

 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"); 

最后一行不能只是:

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

,因为这每一个试图发送数据始终是多部分的,但是。 不幸的是接收方不接受这个。

有没有办法解决这个很容易实现的问题,如果不是的话,有人可以向我解释我如何更改Restsharp来允许这个选项。

回答

0

因此,原来是因为RestSharp已经改变了这么多,我已经找到答案都是过时......

我无法找到关于这个问题了信息,所以我不得不搬走来自restSharp。

我已经想出了解决办法如下:

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); 
      } 

     }