我正在尝试发出一个POST请求,我应该发送Raw POST数据。
我应该修改哪个属性来实现此目的。
是HttpWebRequest.ContentType属性吗?如果,那么我应该赋予它什么价值。
答案 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()并将数据写入返回的流中。