Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >带有POST请求的Mediawiki action=parse

带有POST请求的Mediawiki action=parse
EN

Stack Overflow用户
提问于 2011-08-31 12:31:20
回答 1查看 394关注 0票数 1

有人试图通过POST请求访问"api.php?action=parse&text=“页面吗?

wiki文档上,我发现将wiki文本转换为HTML是可能的。它可以很好地处理GET请求,但据我所知,它对文本的长度有限制,所以我尝试通过POST来做到这一点。但不幸的是没有成功..。我收到错误消息:

远程服务器返回一个错误:(417)期望失败。

下面是用于请求的C#中的代码:

代码语言:javascript
运行
AI代码解释
复制
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请求?有人想做同样的事吗?

谢谢你的建议,亚历克斯

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-31 13:08:14

API常见问题

为什么我的API调用Wikimedia wiki只是返回一个HTML错误? 如果在POST请求中使用API调用,请确保这些请求不使用Content: multipart/form-data。例如,如果使用CURL访问API并将POST参数作为数组传递,就会发生这种情况。在Wikimedia wiki场的前端服务器上使用的Squid代理服务器不能正确地处理这个问题,因此会返回错误。 相反,使用“value1=key1&value2=key2.”将参数作为字符串传递的符号,类似于GET请求。 在您直接访问的其他wiki上,这并没有什么不同。

这意味着您需要添加以下内容:

代码语言:javascript
运行
AI代码解释
复制
rq.ContentType = "application/x-www-form-urlencoded";

编辑:要使查询正常工作,必须执行上述操作,但这并不是导致错误的原因。事实上,.Net在默认情况下添加了一个Expect: 100-continue头,但由于某些原因,它不适用于维基百科。若要修复此问题,请在请求第一个itme之前添加以下行:

代码语言:javascript
运行
AI代码解释
复制
ServicePointManager.Expect100Continue = false;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7262991

复制
相关文章
【OkHttp】OkHttp Get 和 Post 请求 ( 同步 Get 请求 | 异步 Get 请求 | 同步 Post 请求 | 异步 Post 请求 )
【OkHttp】OkHttp 简介 ( OkHttp 框架特性 | Http 版本简介 ) 【OkHttp】Android 项目导入 OkHttp ( 配置依赖 | 配置 networkSecurityConfig | 配置 ViewBinding | 代码示例 ) 【OkHttp】OkHttp Get 和 Post 请求 ( 同步 Get 请求 | 异步 Get 请求 | 同步 Post 请求 | 异步 Post 请求 )
韩曙亮
2023/03/29
16.7K0
GET请求和POST请求
在网络编程中,HTTP协议是最常用的协议之一,用于在客户端和服务器之间传输数据。HTTP协议中最常用的两种请求方式是GET和POST请求。这篇博客将介绍GET和POST请求的区别,以及在不同场景中如何选择使用这两种请求方式。
chao超的搬运文章
2023/10/15
5920
GET 请求和 POST 请求的区别
① get 请求用来从服务器上获取资源;而 post 请求通常是用来向服务器提交数据的;
happyJared
2019/06/25
2.5K0
原生js发送post请求_javascript发送post请求
说明: 要测试restsharp的功能,首先需要了解http传参和下载上传文件的原理,请参考: c#:从http请求报文看http协议中参数传递的几种方式 c#使用Http上传下载文件
全栈程序员站长
2022/10/04
8.7K0
原生js发送post请求_javascript发送post请求
urlconnection post请求
package com.rayootech.activiti.util; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; public class Test { public static void main(String[] args) { String loadJSON =
挑战者
2018/11/09
2.1K0
python post请求
post请求只需构建一个Request对象,并把参数传递给Request对象的data属性即可(也可以在urlopen方法中传递给data参数)。
灯珑LoGin
2022/10/31
1.8K0
MediaWiki
原因:2017年3月24日 星期五 随笔记录。 说明:记录配置MediaWiki安装过程。
ZHaos
2019/02/27
2.5K2
resttemplate post请求发送body_java发送post请求
1POST传递参数 :采用 LinkedMultiValueMap ,不能使用HashMap
全栈程序员站长
2022/10/03
2.5K0
post请求包含哪些参数(请求方式post和get)
1)、HTTP 协议是以 ASCII 码 传输,建立在 TCP/IP 协议之上的应用层规范。规范把 HTTP 请求分为三个部分:状态行、请求头、消息主体。 2)、协议规定 POST 提交的数据必须放在消息主体(entity-body)中,但协议并没有规定数据必须 使用什么编码方式 。实际上,开发者完全可以自己决定消息主体的格式,只要最后发送的 HTTP 请求满足上面的格式就可以。 3)、数据发送出去,还要服务端解析成功才有意义。一般服务端语言如 php、python 等,以及它们的 framework,都内置了自动解析常见数据格式的功能。服务端通常是根据请求头(headers)中的 Content-Type 字段来获知请求中的消息主体是用何种方式编码,再对主体进行解析。
全栈程序员站长
2022/07/29
3.9K0
直接取出 post 请求中的 json、得请求体参数、查看 post 请求参数
方法如下: try{ ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); HttpServletRequest request = requestAttributes.getRequest(); StringBuffer sb = new S
微风-- 轻许--
2022/04/13
5K0
HttpClient-Get请求、Post请求
有参数,请求链接为url(http://localhost:8083/getdemo2)
wangmcn
2022/07/25
2.8K0
HttpClient-Get请求、Post请求
iOS同步post请求
-(NSDictionary * )SynchronousRequestUserBaseFromRemoteWith:(NSString *)userId{
星宇大前端
2019/01/15
1.8K0
python 异步post请求
import aiohttp headers = {'User-Agent': 'Dalvik/2.1.0 (Linux; U; Android 6.0.1; Nexus 5 Build/MMB29K) tuhuAndroid 5.24.6', 'content-type': 'application/json'} async with aiohttp.ClientSession(headers=headers) as sess:
Wyc
2021/08/13
3.5K0
WebView进行post请求
大多数情况下我们一般用WebView去加载一个界面就行了,但是有时候你想要进行post请求,比如你抓取到提交参数,想模拟一些pc端浏览器的请求,比如12306火车票.那要怎么做呢? 抓取的参数如下:
夏洛克的猫
2018/10/18
3.2K0
WebView进行post请求
curl发送POST请求
curl发送POST请求 今天写Gitlab的一个merge request hook,使用curl来简化测试请求.简单备忘一下,如何使用curl发送POST请求.以下为使用curl发送一个携带json数据的POST请求.
技术小黑屋
2018/09/04
6.9K0
AJAX发送POST请求
AJAX(Asynchronous JavaScript and XML)是一种用于在 Web 应用程序中进行异步数据交换的技术。在 AJAX 请求中,我们可以使用 POST 方法发送数据到服务器,以便进行处理和保存。
堕落飞鸟
2023/05/18
4.1K0
iOS网络post请求
// post请求(代理方式) // NSURL * url = [NSURL URLWithString:@"http://192.168.2.162/logo.php"]; // // //通过URL建立请求对象 // NSMutableURLRequest * request = [NSMutableURLRequest requestWithURL:url]; // // //设置请求方式(默认的是get方式) // request.HTTPMethod =
大师级码师
2021/10/31
1.2K0
python处理get请求和post请求
#处理get请求,不传data,则为get请求 import urllib from urllib.request import urlopen from urllib.parse import u
用户1220053
2018/03/29
3.4K0
axios的post请求参数格式
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/15
2.1K0
MediaWiki安装
默认的logo比较难看,可以更换logo: /usr/www/wiki/resources/assets/wiki.png
Java架构师必看
2021/03/22
9600

相似问题

带有Post的MediaWiki AutoPopulate

10

对mediawiki api的post请求

11

Mediawiki -编辑模块需要post请求

10

parse.com中post请求中的请求参数

11

Parse向POST请求返回空400

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文