Canonical HTTP POST代码?

Use*_*ser 15 c# post http .net-3.5

我已经看到了很多发送http帖子的实现,并且我承认我并不完全理解底层细节以了解所需要的内容.

在C#.NET 3.5中发送HTTP POST的简洁/正确/规范代码是什么?

我想要一个通用的方法

public string SendPost(string url, string data)
Run Code Online (Sandbox Code Playgroud)

可以添加到库中并始终用于发布数据,并将返回服务器响应.

Pat*_*lug 10

我相信这个的简单版本就是

var client = new WebClient();
return client.UploadString(url, data);
Run Code Online (Sandbox Code Playgroud)

System.Net.WebClient类有让你下载或上传字符串或文件,或字节其他有用的方法.

不幸的是,经常会有你需要做更多工作的情况.例如,上面没有考虑需要对代理服务器进行身份验证的情况(尽管它将使用IE的默认代理配置).

此外,WebClient不支持上传多个文件或设置(某些特定的)标题,有时您将不得不深入使用

System.Web.HttpWebRequestSystem.Net.HttpWebResponse来代替.