Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 带便携库的POST/PUT请求_C#_.net 4.0_Portable Class Library - Fatal编程技术网

C# 带便携库的POST/PUT请求

C# 带便携库的POST/PUT请求,c#,.net-4.0,portable-class-library,C#,.net 4.0,Portable Class Library,我们已经创建了一个可移植类库项目,为我们的ASP.NET Web Api Rest服务编写一个客户机/包装器/代理项目 我会直截了当地说:似乎我们不能做有主体的POST/PUT请求 var dataBytes = Encoding.UTF8.GetBytes(data); var requestHandle = request.BeginGetRequestStream(ar => { using (var stream = request.EndGetRequestStream

我们已经创建了一个可移植类库项目,为我们的ASP.NET Web Api Rest服务编写一个客户机/包装器/代理项目

我会直截了当地说:似乎我们不能做有主体的POST/PUT请求

var dataBytes = Encoding.UTF8.GetBytes(data);

var requestHandle = request.BeginGetRequestStream(ar =>
{
    using (var stream = request.EndGetRequestStream(ar))
    {
        stream.Write(dataBytes, 0, dataBytes.Length); // Exception thrown here
    }
}, null);
当我尝试写入请求时,我得到一个异常:

请求被中止:连接意外关闭

过了一段时间,我发现stream.CanWrite是false,所以它不可写,这就意味着我们不能用一个主体执行任何POST请求

有人能帮我们一下吗,告诉我们应该如何处理POST请求?我在这里找到了另一个帖子,答案是看一下RestSharp,但这似乎也不起作用,因为它不支持便携库


非常感谢您的帮助。

这看起来不像是可移植类库特有的问题。如果在特定于平台的库中运行相同的代码,我预计它也会以同样的方式失败。因此,我认为问题要么在于您创建或使用HttpWebRequest的方式,要么在于服务器端

您在哪个平台上运行此程序并出现故障

您可能需要查看()。这将添加async和Wait支持以及一些扩展方法,如GetRequestStreamAsync(),因此您可以使用以下代码(在异步方法中):


不过,行为应该是相同的,所以我不认为这本身就能解决您的问题。

已经解决了。你是对的。这不是PCL的具体问题。在清理了一点代码之后,我成功地解决了这个问题。我不记得到底出了什么问题,但这是一个非常简单的解决办法。
using (var stream = await request.GetRequestStreamAsync())
{
    stream.Write(dataBytes, 0, dataBytes.Length);
}