2013-06-20 5 views
0

내 문제는 - 패러데이가 URL에 연결할 수 없습니다. 브라우저에서 열면 http://localhost:3001/api/plans 응답을받습니다.
하지만 난 레일에서 연결하려고 할 때 내가 응답 상태 (405) 및 빈 응답 본문을 얻을패러데이가 URL에 연결되지 않았습니다

url = 'http://localhost:3001/api/plans' 
    conn = Faraday.new(:url => url) do |faraday| 
    faraday.request :url_encoded    # form-encode POST params 
    faraday.response :logger     # log requests to STDOUT 
    faraday.adapter Faraday.default_adapter # make requests with Net::HTTP 
    end 
    resp = conn.post do |req| 
    req.headers['Content-Type'] = 'application/json' 
    req.body = data.to_json 
    end 
    logger.info '**********************************' 
    logger.debug "* Login params: #{data.inspect}" 
    logger.debug "* Url: #{url} " 
    logger.debug "* Response: #{resp.inspect} " 
    logger.debug "* Response body: #{resp.body.inspect} " 
    logger.info '**********************************' 

로거의 출력은 다음과 같습니다

********************************** 
* Login params: {:username=>"14122460670", :password=>"******", :remember_me=>"on"} 
* Url: http://localhost:3001/api/plans 
* Response: #<Faraday::Response:0x007f9f5c467528 @env={:method=>:post, :body=>"", :url=>#<URI::HTTP:0x007f9f480da450 URL:http://localhost:3001/v1/sessions>, :request_headers=>{"User-Agent"=>"Faraday v0.8.7", "Content-Type"=>"application/json"}, :parallel_manager=>nil, :request=>{:proxy=>nil}, :ssl=>{}, :status=>405, :response_headers=>{"allow"=>"OPTIONS, GET, HEAD", "content-type"=>"text/plain", "connection"=>"close", "server"=>"thin 1.5.1 codename Straight Razor"}, :response=>#<Faraday::Response:0x007f9f5c467528 ...>}, @on_complete_callbacks=[]> 
* Response body: "" 
********************************** 

왜 내가 어떻게 패러데이와를 사용하여 응답을 얻을 수 없다 나는 그것을 얻을지도 모른다?

답변

1

오류 코드 405는 사용중인 http 메서드가 지원되지 않는다는 것을 의미합니다. 그래서 문제는 브라우저에서 GET 메서드로이 사이트에 액세스하고 패러데이에서 POST라고 생각할 수 있습니다.

패러데이가 GET 요청을 보내도록 구성하십시오.

resp = conn.get do |req| 
... 
+0

결국 서버가 이상한 작업에 대한 요청을받습니다! – Elmor

관련 문제