2017-05-06 6 views
0

이 웹 사이트 (http://www.degraeve.com/translator.php)에 일부 매개 변수를 보내고 내 레일 응용 프로그램에 대한 응답을 얻으려고합니다. 나는 이름이 'd'인 라디오 버튼에서 'binary'를 선택하고 번역 할 'w'라는 텍스트 필드에 'a'를 넣기를 원합니다. 내 컨트롤러에이 작업을 사용하고 있습니다 :다른 웹 사이트 양식에 게시하고 Rails로 응답 받기

class RoomsController < ApplicationController 
    require "uri" 
    require "net/http" 
    require 'json' 


    def test  

    uri = URI.parse("http://www.degraeve.com/translator.php") 
    header = {'Content-Type': 'text/json'} 
    params = { d: 'binary', w: 'a' } 

    # Create the HTTP objects 
    http = Net::HTTP.new(uri.host, uri.port) 
    request = Net::HTTP::Post.new(uri.request_uri, header) 
    request.body = params.to_json 

    # Send the request 
    response = http.request(request) 
    render json: response.body 
    end 
end 

는 뭔가 잘못이 있습니까? 양식을 제출하기 전에 단지 http://www.degraeve.com/translator.php의 본문을 렌더링하지만 본문을 제출 한 후에 본문을 가져오고 싶습니다.

답변

1

"번역!"버튼을 누른 후 어떻게 될지 살펴 봅니다. 버튼을 클릭하면 POST를 통해 제출되는 양식이 없음을 알 수 있습니다. 대신 GET 요청이 전송되고 HTML 파일이 반환됩니다. 브라우저의 네트워크 관리자에서 직접 확인하십시오.

uri = URI.parse("http://www.degraeve.com/cgi-bin/babel.cgi?d=binary&url=http%3A%2F%2Fwww.multivax.com%2Flast_question.html&w=a") 
response = Net::HTTP.get_print(uri) 

을하고 그에 따라 응답을 구문 분석 :

따라서, 당신은 다음과 같이합니다 (dw 쿼리 매개 변수를주의), 준비된 URL과 간단한 GET 요청을 보낼 수 있습니다.

+0

답변 해 주셔서 감사합니다. –