【发布时间】:2011-08-31 20:31:20
【问题描述】:
是否有人尝试通过 POST 请求访问“api.php?action=parse&text=”页面?
在wiki documentation 上,我发现可以将wiki 文本转换为HTML。它适用于 GET 请求,但据我所知,它对文本的长度有限制,所以我尝试通过 POST 来做到这一点。但不幸的是没有任何成功......我收到错误消息:
远程服务器返回错误:(417) 预期失败。
这是我用于请求的 C# 代码:
StringBuilder postData = new StringBuilder();
foreach(var param in parameters)
{
if (postData.Length > 0)
postData.Append("&");
postData.AppendFormat("{0}={1}", param.Key, EncodeUrl(param.Value));
}
byte[] data = Encoding.UTF8.GetBytes(postData.ToString());
HttpWebRequest rq = (HttpWebRequest)WebRequest.Create(wiki.WikiURI + "/" + pgname);
rq.UserAgent = "Test Wiki Access" + Utils.Version.ToString();
rq.ContentType = "application/x-www-form-urlencoded";
rq.Method = "POST";
rq.ContentLength = data.Length;
Stream stream = rq.GetRequestStream();
stream.Write(data, 0, data.Length);
stream.Flush();
stream.Close();
string res = new StreamReader(rq.GetResponse().GetResponseStream(), Encoding.UTF8)
.ReadToEnd();
只是想知道是我的代码有问题还是该页面根本不支持 POST 请求?有没有人尝试做同样的事情?
提前感谢您的任何建议, 亚历克斯
【问题讨论】: