gpt4 book ai didi

带有 session cookie 的 Ruby HTTP post

转载 作者:数据小太阳 更新时间:2023-10-29 07:19:19 24 4
gpt4 key购买 nike

我正在尝试编写一个 Ruby 脚本来使用图片库网站 Piwigo 上的 API,这需要您先使用一个 HTTP 帖子登录,然后使用另一个帖子上传一张图片。

这是我到目前为止所得到的,但它不起作用,只是返回 401 错误,任何人都可以看到我哪里出错了吗?

require 'net/http'
require 'pp'

http = Net::HTTP.new('mydomain.com',80)
path = '/piwigo/ws.php'
data = 'method=pwg.session.login&username=admin&password=password'
resp, data = http.post(path, data, {})
if (resp.code == '200')
cookie = resp.response['set-cookie']
data = 'method=pwg.images.addSimple&image=image.jpg&category=7'
headers = { "Cookie" => cookie }
resp, data = http.post(path, data, headers)
puts resp.code
puts resp.message
end

运行时给出此响应;

$ ruby piwigo.rb
401
Unauthorized

他们的 API 页面上有一个 Perl 示例,我试图将其转换为 Ruby http://piwigo.org/doc/doku.php?id=dev:webapi:pwg.images.addsimple

最佳答案

通过使用 nice_http gem:https://github.com/MarioRuiz/nice_httpNiceHttp 会处理您的 cookie,因此您无需执行任何操作

require 'nice_http'
path = '/piwigo/ws.php'
data = '?method=pwg.session.login&username=admin&password=password'

http = NiceHttp.new('http://example.com')
resp = http.get(path+data)

if resp.code == 200
resp = http.post(path)
puts resp.code
puts resp.message
end

此外,如果您愿意,可以使用 http.cookies 添加自己的 cookie

关于带有 session cookie 的 Ruby HTTP post,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16590516/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com