【发布时间】:2018-06-21 18:06:36
【问题描述】:
我尝试使用 Postdata 执行 Post 请求,它是部分 urlencoded。 我有以下 PostData 要发送:
p1=v1
p2=v2
p3=up1=uv1&up2=uv2
为了实现这一点,我格式化了 p3 的值
p3=up1%3duv1%26up2%3duv2
然后我将所有内容都写入一个字符串值:
p1=v1&p2=v2&p3=up1%3duv1%26up2%3duv2
现在我有一个发布请求:
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
request.Method = "POST";
byte[] data = Encoding.UTF8.GetBytes(postData);
request.ContentType = "application/x-www-form-urlencoded";
request.Headers["ContentLength"] = data.Length.ToString();
using (Stream stream = await request.GetRequestStreamAsync())
{
stream.Write(data, 0, data.Length);
}
WebResponse response = await request.GetResponseAsync();
Stream streamResponse = response.GetResponseStream();
但目标网址现在接收
p1=v1
p2=v2
P3=up1=uv1_up2=uv2
一个 _ 代替 & 另外,尽管如此,我正在使用 UTF8 编码 äüö 之类的字符已损坏。
我尝试了几种编码(ASCII、iso-8859-1),但总是一样。
最后一个问题是,如何发布一个 urlencoded String ?
【问题讨论】: