使用堆栈交换API

我试图upvote堆栈交换api stackoverflow问题,并失败。 我已经尝试了很多,但我没有得到它的工作。

URL:

http://api.stackexchange.com/2.2/questions/35007869/upvote

文件

https://api.stackexchange.com/docs/upvote-question

Json数据:

{ "key" : "my key", "access_token" : "my token", "site" : "stackoverflow.com", "preview" : "false", "filter": "default" } 

我试着通过下面的参数提琴手。

 User-Agent: Fiddler Host: api.stackexchange.com Content-Length: 159 Content-Type: application/json; charset=utf-8 

POST方法。 但是我失败了以下错误消息。

 error_id=400 error_message=site is required error_name=bad_parameter 

但是我在我的JSON对象中提供了这个网站。 所以任何帮助将是非常可观的。

更新

当在小提琴手中尝试这个时,我得到了以下信息。

在这里输入图像说明

Solutions Collecting From Web of "使用堆栈交换API"

你需要发送他们作为表单数据,用Javascript将是这样的:

 var request = new XMLHttpRequest(); request.open('POST', 'http://api.stackexchange.com/2.2/questions/35007869/upvote', true); var formData = new FormData(); formData.append('key', 'my key'); formData.append('access_token', 'my token'); formData.append('site', 'stackoverflow.com'); formData.append('preview', 'false'); formData.append('filter', 'default'); request.send(formData); 

下面是一个使用Android的指南: http : //www.onlymobilepro.com/2013/03/16/submitting-android-form-data-via-post-method/

您必须将参数作为URL参数发送,而不是作为请求主体上的原始JSON。 为了执行upvote,发送以下POST请求:

 http://api.stackexchange.com/2.2/questions/35007869/upvote?site=stackoverflow.com&key=YOUR_KEY&access_token=YOUR_TOKEN&preview=false&filter=default 

你的Json数据应该这样发送,不允许下一行

 {"key":"mykey","access_token":"mytoken","site":"stackoverflow.com","preview":"false","filter":"default"}