如何使用C#HttpWebRequest发布原始数据

时间:2010-09-17 14:03:14

标签: c# post httpwebrequest

我正在尝试发出一个POST请求,我应该发送Raw POST数据。

我应该修改哪个属性来实现此目的。

是HttpWebRequest.ContentType属性吗?如果,那么我应该赋予它什么价值。

2 个答案:

答案 0 :(得分:10)

public static string HttpPOST(string url, string querystring)
{
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
    request.ContentType = "application/x-www-form-urlencoded"; // or whatever - application/json, etc, etc
    StreamWriter requestWriter = new StreamWriter(request.GetRequestStream());

    try
    {
        requestWriter.Write(querystring);
    }
    catch
    {
        throw;
    }
    finally
    {
        requestWriter.Close();
        requestWriter = null;
    }

    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    using (StreamReader sr = new StreamReader(response.GetResponseStream()))
    {
        return sr.ReadToEnd();
    }
}

答案 1 :(得分:2)

您希望将ContentType属性设置为数据的mime类型。如果它是一个文件,它取决于文件的类型,如果它是纯文本然后是text / plain,如果它是你自己的本地目的的任意二进制数据那么application / octet-stream。对于基于文本的格式,您需要包含字符集以及内容类型,例如“text / plain; charset = UTF-8”。

然后,您需要调用GetRequestStream()并将数据写入返回的流中。