gpt4 book ai didi

Python 到 ruby​​ 的转换

转载 作者:塔克拉玛干 更新时间:2023-11-01 19:12:33 25 4
gpt4 key购买 nike

大家好,我有一个 python 脚本,可以将一些数据发布到谷歌并获得回复。脚本如下

net, cid, lac = 24005, 40242, 62211
import urllib
a = '000E00000000000000000000000000001B0000000000000000000000030000'
b = hex(cid)[2:].zfill(8) + hex(lac)[2:].zfill(8)
c = hex(divmod(net,100)[1])[2:].zfill(8) + hex(divmod(net,100)[0])[2:].zfill(8)
string = (a + b + c + 'FFFFFFFF00000000').decode('hex')
try:
data = urllib.urlopen('http://www.google.com/glm/mmap',string)
r = data.read().encode('hex')
print r
except:
print 'connect error'

我想用 ruby​​ 脚本获得相同的响应。我无法正确地形成请求,而且我总是收到 badimplementation 错误或 http 501 错误。你能告诉我错误在哪里吗? (ruby 脚本附在下面)。

require 'net/http'
def fact(mnc,mcc,cid,lac)
a = '000E00000000000000000000000000001B0000000000000000000000030000'
b = cid.to_s(16).rjust(8,'0') + lac.to_s(16).rjust(8,'0')
c = mnc.to_s(16).rjust(8,'0') + mcc.to_s(16).rjust(8,'0')
string = [a + b + c + 'FFFFFFFF00000000'].pack('H*')
url = URI.parse('http://www.google.com/glm/mmap')
resp = Net::HTTP.post_form(url,string)
print resp
end
puts fact(5,240,40242,62211)

最佳答案

From the documentation :

Posts HTML form data to the specified URI object. The form data must be provided as a Hash mapping from String to String.

如果我理解正确的话,你必须在表单上传递参数:{"param1"=> "value1", "param2"=>"value2"}

我只是不明白您在请求中传递的参数名称是什么。

以下是 Net::HTTP::post_form 方法的一些用法示例,同样来自官方文档:

示例 1:

uri = URI('http://www.example.com/search.cgi')
res = Net::HTTP.post_form(uri, 'q' => 'ruby', 'max' => '50')
puts res.body

例子2:

uri = URI('http://www.example.com/search.cgi')
res = Net::HTTP.post_form(uri, 'q' => ['ruby', 'perl'], 'max' => '50')
puts res.body

Link to the examples

希望对你有帮助

编辑:接受字符串作为发布请求参数的函数:Net::HTTP::request_post

关于Python 到 ruby​​ 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9959769/

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