1

3 つのパラメーターと 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 からエラーが発生しています。パラメータと本体を別々に設定する方法が必要であることは知っていますが、これへの参照が見つからないようです。

4

1 に答える 1

0

パラメータの一部を URL で送信し、一部を本文で送信する必要があるのはなぜですか? これを行う必要がある場合は、試してください

url = URI.parse('http://'+ @ip_address[@cueserver] + '/set.cgi?' + params.to_param)

PS: to_param はアクティブなサポートからのものです。アクティブなサポートを使用していない場合は、独自に作成する必要があります。

于 2012-11-11T15:24:01.423 に答える