我需要发送一个不能是多部分数据的POST请求,到目前为止我看到的每个答案都是为RestSharp更改http.cs文件,但我不熟悉如何解决这个问题。
我的代码:
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 :(得分: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);
}
}