는 Typhoeus는 루비 구축하여 HTTP 매개 변수를 전달할 수 있습니다. 귀하의 예를 들어 URL이 JSON 객체를 포함하고 있기 때문에, API는 걸 가능성이 보인다,
my_params = {
api_key: "XXXXXXXXXXXXXXXXXX",
objects: [
{ field1: 'My ObjectA2' },
{ field: 'ObjectB',
color: '1',
note: '98765' }],
ids: "foo, bar"
}
get_response = Typhoeus::Request.get("http://www.example.com/objects/add.php", params: my_params)
get_response.effective_url #> http://www.example.com/objects/add.php?api_key=XXXXXXXXXXXXXXXXXX&ids=foo%2C+bar&objects=%7B%3Afield1%3D%3E%22My+ObjectA2%22%7D&objects=%7B%3Afield%3D%3E%22ObjectB%22%2C+%3Acolor%3D%3E%221%22%2C+%3Anote%3D%3E%2298765%22%7D
그러나 : 귀하의 게시물에서 유사한 URL을 생성하려면의 라인을 따라 뭔가를 할 것 함께 작업하는 것은 POST 요청을 찾고 있습니다.
는
post_response = Typhoeus::Request.post("http://www.example.com/objects/add.php", params: my_params)
post_response.effective_url #> http://www.example.com/objects/add.php
post_response.request.params #> {:api_key=>"XXXXXXXXXXXXXXXXXX", :objects=>[{:field1=>"My ObjectA2"}, {:field=>"ObjectB", :color=>"1", :note=>"98765"}], :ids=>"foo, bar"}
편집 : API는 GET 요청을 기대하는 경우, GET 요청을 통해 직렬화 된 데이터를 전달하기 위해 현재 가장 일반적인 방법으로
는 매개 변수 이름의 끝에 대괄호를 추가하는 것입니다 :
http://www.example.com/objects/add.php?objects[]=something&objects[]=something%20else
그러나 Typhoeus는 기본적으로 대괄호를 추가하지 않습니다. 이 결정에 대한 추론을 제공하는 토론이 있습니다 (on the Typhoeus mailing list). 다행히 직접 브래킷을 추가 할 수 있습니다.
my_params = {
api_key: "XXXXXXXXXXXXXXXXXX",
:"objects[]" => [
{ field1: 'My ObjectA2' },
{ field: 'ObjectB',
color: '1',
note: '98765' }],
ids: "foo, bar"
}
get_response = Typhoeus::Request.get("http://www.example.com/objects/add.php", params: my_params)
get_response.effective_url #> http://www.example.com/objects/add.php?api_key=XXXXXXXXXXXXXXXXXX&ids=foo%2C+bar&objects%5B%5D=%7B%3Afield1%3D%3E%22My+ObjectA2%22%7D&objects%5B%5D=%7B%3Afield%3D%3E%22ObjectB%22%2C+%3Acolor%3D%3E%221%22%2C+%3Anote%3D%3E%2298765%22%7D
예, 일부 실제 코드가 도움이됩니다. 또한 웹 서버 로그를 확인하여 요청이 두 인스턴스에서 정확히 번역되었는지 확인하십시오 (Chrome 대 Ruby). – theglauber
@Krule : 무엇이 잘못 되었나요? –