通过RestSharp发送非多部分数据

时间:2016-11-22 16:12:06

标签: c# http dll restsharp

我需要发送一个不能是多部分数据的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以允许这个作为选项。

1 个答案:

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

        }