我正在尝试发送一个POST请求,我应该发送原始POST数据。如何使用C#发布原始数据HttpWebRequest
我应该修改哪些属性来实现此目的。
它是HttpWebRequest.ContentType属性。如果,那么我应该给它分配什么样的价值。
我正在尝试发送一个POST请求,我应该发送原始POST数据。如何使用C#发布原始数据HttpWebRequest
我应该修改哪些属性来实现此目的。
它是HttpWebRequest.ContentType属性。如果,那么我应该给它分配什么样的价值。
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();
}
}
请你详细说明一下在你写下“无论”的部分,实际上,这是我需要澄清的部分,在原始发布的情况下应该是什么 – 2010-09-17 19:52:14
Gunner,问题是,你**意味着什么? “? – 2010-09-17 22:34:28
我认为这里的'raw'这个词是我被告知的内部术语。基本上,我需要做的就是发布请求。”req.ContentType =“application/x-www-form-urlencoded”;“ ,这对我很有用 – 2010-09-20 14:51:30
您想要将ContentType属性设置为数据的MIME类型。如果它是一个文件,它取决于文件的类型,如果它是纯文本,那么文本/纯文本,如果它是一个任意的二进制数据,你自己的本地目的然后application/octet-stream。对于基于文本的格式,您需要将charset与内容类型一起包含在内。 “text/plain; charset = UTF-8”。
然后您需要调用GetRequestStream()并将数据写入返回的流中。
的可能DUP:http://stackoverflow.com/questions/2136857/using-httpwebrequest-to-post-to-a-form-on-an-outside-server – 2010-09-17 14:04:42
@Kirk沃尔,隐而不宣”似乎是重复的。这个问题想要发布多部分/表单数据,而这似乎是发送一个单一的数据流。 – 2010-09-17 14:17:43
@Jon,你为什么这么说?我链接的问题不包含字符串“多”,看起来非常相似。 – 2010-09-17 14:23:09