我正在为我的项目使用C#,任何人都可以告诉我什么是HTTP POST Requset的standered结构。如何在代码请求中附加类似文件的POST数据。
我只想从我的代码本身创建一个POST请求,并发布不同的项目。
我已经检查了Ietf的RFC for http POST,但它太长了......
答案 0 :(得分:5)
我一直赞赏HTTP Made Really Easy作为起点。它小巧,简洁,友好。
通常,您可以从本指南的简单样式中获得足够的实施细节(或至少足够的理解),以满足您的需求。它已经为我工作了很多次。 POST上有一节。该指南累积建立。
此外,如果您需要引用它们并获得更多详细信息,它会链接到正确的规范和更全面的资源。
幸运的是,.NET Framework类库包含可以简化生活的更高级别的类。查看MSDN文档和有关System.Net.WebClient的示例(不适用于POST,有利于GET快速使用方法)。考虑更灵活的System.Web.HttpRequest和System.Web.HttpResponse对应类。
此代码示例显示了将二进制数据发布到流的概念。
此方法称为:
PostMyData(Stream_instance, "http://url_to_post_to");
涉及的命名空间是:
using System.IO;
using System.Net;
自定义方法如下所示。
注意:概念取自MSDN sample code here。
虽然我使用MIME类型application/octet-stream
作为通用二进制数据,但您可以使用this list of mime types中任何众所周知的类型来定位您要发送的二进制数据类型。
public int PostMyData(Stream binaryData, string postToUrl) {
// make http request
var request = (HttpWebRequest)WebRequest.Create(postToUrl);
request.Method = "POST";
request.ContentType = "application/octet-stream"; // binary data:
// data (bytes) that will be posted in body of request
var streamOut = request.GetRequestStream();
binaryData.CopyTo(streamOut);
// post and get response
using (var response = (HttpWebResponse)request.GetResponse()) {
var code = response.StatusCode;
return (int)code;
}
}
答案 1 :(得分:1)
使用HttpWebRequest,它始终是最好的方法,但对于Http Post读取更简单的方法: http://programaticallyspeaking.site40.net/blog/2010/11/how-to-implement-an-http-server-part-1/
答案 2 :(得分:0)
嘿,我找到了查看示例POST请求的方法,使用Fiddler跟踪HTTp传输,然后单击RAW查看正在传输的原始数据。