我无法获取MediaWiki的编辑令牌:
请求
POST /w/api.php HTTP/1.1
Host: en.wikipedia.org
Accept: */*
User-agent: Sbose7890
Content-Length: 59
Content-Type: application/x-www-form-urlencoded
action=query&prop=info&intoken=edit&titles=Java&format=json
响应
HTTP/1.0 200 OK
Date: Tue, 10 Jan 2012 09:14:03 GMT
Server: Apache
X-Content-Type-Options: nosniff
Cache-Control: private
Vary: Accept-Encoding
Content-Length: 209
Content-Type: application/json; charset=utf-8
X-Cache: MISS from sq34.wikimedia.org
X-Cache-Lookup: MISS from sq34.wikimedia.org:3128
X-Cache: MISS from sq59.wikimedia.org
X-Cache-Lookup: MISS from sq59.wikimedia.org:80
Connection: close
{
"query": {
"pages": {
"69336": {
"starttimestamp": "2012-01-10T09:14:03Z",
"lastrevid": 469959190,
"touched": "2012-01-07T11:38:04Z",
"pageid": 69336,
"title": "Java",
"edittoken": "+\\",
"ns": 0,
"length": 37800,
"counter": ""
}
}
}
}
我使用hurl.it尝试了它。
我也登录了。
答案 0 :(得分:4)
您正在获取编辑令牌:+\
。这是anon用户的一个,并且始终是相同的。请参阅mw:Manual:Edit token,以及从那里链接的修订版。
问题在于,无论您的登录信息如何,都必须登录。例如,您必须发送有效的enwiki_session
Cookie。但是不要发布你的,每个人都可以用它登录!
答案 1 :(得分:1)
简而言之,不使用原始MediaWiki API ,every conceivable language out there有客户端负责处理所有这些繁琐的事情。例如,如果您使用的是Ruby,那么您需要登录并编辑文章的所有MediaWiki::Gateway代码:
mw = MediaWiki::Gateway.new(your-wiki)
mw.login(user, pw)
mw.create("Article", "Hello world")