是否有一个流行的C#库用于工作HTTP?例如,简化使用httpwebrequest等的工作

Gre*_*reg 5 c# file-upload http httpwebrequest

是否有一个流行的C#库用于工作HTTP?例如,简化使用httpwebrequest等的工作

例如,使用某些参数执行http文件上载需要许多行和Http协议内容格式等知识.WebClient本身不会这样做.

所以,新的,有一个知名的库,c#开发人员在这里使用?

谢谢

dtb*_*dtb 13

Web表单以两种格式之一提交:application/x-www-form-urlencodedmultipart/form-data.

WebClient提供了一种将任何类型的数据上传到网站的简单方便的方法.在application/x-www-form-urlencoded的情况下,你所要做的就是提供一个NameValueCollection.对于multipart/form-data,AFAIK,您必须自己创建请求数据(可能包括文件和名称值对).


应用程序/ x-WWW窗体-urlencoded

NameValueCollection formData = new NameValueCollection();
formData["q"] = "c# webclient post urlencoded";
formData["btnG"] = "Google Search";
formData["hl"] = "en";

WebClient myWebClient = new WebClient();
myWebClient.UploadValues(uriString, formData);
Run Code Online (Sandbox Code Playgroud)

WebClient.UploadValues将HTTP方法设置为"POST",将Content-Type设置"application/x-www-form-urlencoded"URL编码formData并将其上载到指定的uriString.


多部分/格式数据

string formData = @"--AaB03x
Content-Disposition: form-data; name=""submit-name""

Larry
--AaB03x
Content-Disposition: form-data; name=""files""; filename=""file1.dat""
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64

" + Convert.ToBase64String(
  File.ReadAllBytes("file1.dat"), Base64FormattingOptions.InsertLineBreaks) + @"
--AaB03x--
";

WebClient myWebClient = new WebClient();
myWebClient.Encoding = Encoding.ASCII;
myWebClient.Headers.Add("Content-Type", "multipart/form-data; boundary=AaB03x");
myWebClient.UploadString(uriString, formData);
Run Code Online (Sandbox Code Playgroud)

这将设置内容类型"multipart/form-data"与请求数据中使用的边界. WebClient.UploadData将HTTP方法设置为"POST"并将字节数组上传到uriString.此示例中的请求数据包含一个文件file1.dat和一个submit-name设置为的表单参数Larry.RFC2388中描述了该格式.


Gre*_*reg 1

这是迄今为止我可以确定的最佳答案:

这是我发现的一个链接,它与我的想法很接近。这解决了我的具体要求,但在方法方面似乎并不太广泛。也许这些只是基本 WebClient / HttpWebRequest 类支持之上/之外主要需要的关键帮助器方法?无论如何,如果有人知道比这更知名的流行 C# HTTP 库,请告诉我。除此之外,这个链接是迄今为止我能找到的最好的回答我的问题的链接。感谢迄今为止的所有评论。