什么是标准POST请求的结构

时间:2010-12-18 03:09:56

标签: c# http post

我正在为我的项目使用C#,任何人都可以告诉我什么是HTTP POST Requset的standered结构。如何在代码请求中附加类似文件的POST数据。

我只想从我的代码本身创建一个POST请求,并发布不同的项目。

我已经检查了Ietf的RFC for http POST,但它太长了......

3 个答案:

答案 0 :(得分:5)

用于简单参考的规范

我一直赞赏HTTP Made Really Easy作为起点。它小巧,简洁,友好。

通常,您可以从本指南的简单样式中获得足够的实施细节(或至少足够的理解),以满足您的需求。它已经为我工作了很多次。 POST上有一节。该指南累积建立。

此外,如果您需要引用它们并获得更多详细信息,它会链接到正确的规范和更全面的资源。

.NET支持类

幸运的是,.NET Framework类库包含可以简化生活的更高级别的类。查看MSDN文档和有关System.Net.WebClient的示例(不适用于POST,有利于GET快速使用方法)。考虑更灵活的System.Web.HttpRequestSystem.Web.HttpResponse对应类。

使用C#

的示例

此代码示例显示了将二进制数据发布到流的概念。

此方法称为:

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查看正在传输的原始数据。