如何形成Github API POST请求以向gist添加新注释?

时间:2012-05-16 15:03:06

标签: ruby github

我正在通过此网址向github发送帖子请求:

https://api.github.com/gists/2710948/comments

理论上,这应该创建一个注释,文本由请求体中的内容组成。但是,当我尝试发布该帖子时,我收到404错误。这让我相信没有找到要点,但是,如果你在同一地址做了Get请求就可以了。

我需要做一个身份验证吗?我已经尝试在我的标题集中添加用户名和密码,但我不知道我是否使用了正确的格式。我试过通过Ruby,HTTP Client和curl来完成这项工作,并且我得到了同样的错误。

我正在使用的curl命令是:

curl -X POST -d "This is my sample comment" https://api.github.com/gists/2710948/comments

我认为如果我能让curl命令工作,我将能够找出HTTP客户端,然后找出Ruby。这将是我第一次尝试使用API​​,因此对于我来说,仔细检查并没有什么基础;所有建议都会有所帮助。

1 个答案:

答案 0 :(得分:4)

curl -d '{ "body": "Test comment" }' -u "Username:Pass" -X POST https://api.github.com/gists/2710948/comments

Ruby代码:

require 'net/http'

uri = URI("https://api.github.com/gists/2710948/comments")
req = Net::HTTP::Post.new(uri.to_s)
req.basic_auth("Username", "Pass")
req.body = '{"body": "Test message"}'  # `to_json` can be used
req["content-type"] = "application/json"
Net::HTTP.start(uri.host, uri.port, :use_ssl => true) do |http|
  p response = http.request(req)
end

另见http://developer.github.com/v3/gists/comments/