我和sinatra一起使用ruby,並在導入付款時使用了rest-client。 我得到了通過post方法在特定url上輸入的字符串:'.../users/getToken'。 利用這個道理,我想獲得這個URL以get方法付款信息:在sinatra ruby中,如何讓我在rest客戶端得到get方法的響應?
GET_URL = 'https://api/iamport.kr/payments/' + imp_uid
的詳細代碼如下所示,
def get_paymentsdetails(token, imp_uid)
get_url = 'https://api.iamport.kr/payments/'+imp_uid
response = RestClient.get get_url, :data => {}.to_json, :accept => :json, :headers => {'Authorization' => token}
json = JSON.parse(response, :symbolize_names => true)
# json = JSON.parse(response.to_json, {:symbolize_names => true})
return json
end
但是,我得到了401這部分代碼未經授權的錯誤。
response = RestClient.get get_url, :data => {}.to_json, :accept => :json, :headers => {'Authorization' => token}
後,我訪問GET_URL具體imp_uid,我得到了這個頁面,{ 「代碼」: - 1, 「消息」: 「未授權」, 「響應」:空}
我檢查參數標記並且get_paymentsdetails函數的imp_uid具有有效的字符串值,那麼如何訪問響應參數? 我認爲response = RestClient.get get_url ....代碼存在一些問題。
謝謝。
謝謝,我成功獲得回覆值,, 但是,我得到了一個問題,我得到一些值,並檢查這個值是否有效,,,,,但我在重定向頁面上獲得HTML文本, ,我認爲這部分可能是response.body,response.body就是這樣的字符串代碼:「<!doctype html> \ n \ n
\ n在此之前,我改變了這樣的代碼:response = RestClient.get get_url,{'Authorization'=> token,:accept => json},並且我可以像cotroller那樣使用一些響應值,@name = response [:response] [:name],並且我檢查的名字具有有效和正確的值。我得到了最後一個問題上面的事情!我想解析response.body到HTML ,,,不是字符串.. –
如果我正確理解你的問題,你可以使用[nokogiri寶石](https://github.com/sparklemotion/nokogiri)來解析html。您可以將'response.body'傳遞給nokogiri:'Nokogiri :: HTML(response.body).at('body')'。 – sig