2012-11-11 3 views
1

세 매개 변수와 512 바이트로 구성된 본문을 사용하여 게시해야합니다. 나는 몸의 권리를 얻을 수 있지만 매개 변수가 걸릴 얻을 수없는 것 : 나는 initialize_http_header에서 오류를 얻고있다여러 매개 변수와 본문이 포함 된 Ruby HTTP Post

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) 

. 매개 변수와 본문을 별도로 설정하는 방법이 있어야한다는 것을 알고 있지만 이에 대한 참조를 찾을 수 없습니다.

답변

0

왜 url의 일부와 본문의 일부를 보내야합니까? 이 작업을 수행해야하는 경우 ,

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

PS : to_param은 적극적인 지원을 받고 있습니다. 능동적 인 지원을 사용하지 않는다면 스스로 작성해야합니다.

+0

딘 감사합니다. 시도해 보겠습니다. 나는 왜 질문에 대답하려고 노력할 것이다. 이것은 실시간 조명 재생 및 제어를 위해 설계된 구형 장치입니다. 개발자는 가능한 한 가장 효율적인 방식으로 메모리 관리 및 데이터 저장을 기반으로하는 API를 개발했습니다. 그의 다른 UI 소프트웨어는 Obj-C를 사용하고 Obj-C의 post 메소드가 더 낮은 레벨이라고 믿고 있습니다. 그는 http : //url/set.cgi? dst = RES & type = 11 & id = 1 &'512_bytes_here'와 같이 모든 것을 함께 묶는 것처럼 보입니다. 루비에서 작동하지 않는 것 같은데 ... – tsugua

관련 문제