我需要发布三个参数和一个由512个字节组成的主体。我可以让身体正确,但我似乎无法获得参数:
require 'net/http'
@ip_address = Array['cueserver.dnsalias.com']
@cueserver = 0
@playback = 'p1'
def send_cuescript(data)
params = {'id' => '1', 'type' => "20",'dst' => 'RES' }
begin
url = URI.parse('http://'+ @ip_address[@cueserver] + '/set.cgi')
http = Net::HTTP.new(url.host, url.port)
response, body = http.post(url.path, params, data)
rescue Timeout::Error, Errno::EINVAL, Errno::ECONNRESET, EOFError,
Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError, Net::ProtocolError => e
end
response_array = []
puts 'got this value: ' + response.to_s
response.body.each_byte { |e| response_array.push(e.to_s(16))}
end
data_array = Array.new(512, "\x80")
send_cuescript(data_array.join)
我从initialize_http_header收到错误。我知道必须有一种方法来分别设置参数和主体,但我似乎无法找到任何参考。
答案 0 :(得分:0)
为什么你必须在网址中发送部分参数并将其中的一部分发送到体内? 如果必须这样做,请尝试
url = URI.parse('http://'+ @ip_address [@cueserver] +'/ set.cgi?'+ params.to_param)
PS:to_param来自积极的支持。如果您没有使用主动支持,则需要自己编写。