在使用sinatra的ruby中,如何在rest客户机上使用get方法获取I响应?

在使用sinatra的ruby中,如何在rest客户机上使用get方法获取I响应?,ruby,sinatra,rest-client,unauthorized,response-headers,Ruby,Sinatra,Rest Client,Unauthorized,Response Headers,我在sinatra中使用ruby,在导入中使用rest客户端进行支付。 我得到了通过post方法在特定url上键入的字符串标记:'/用户/getToken'。 使用此令牌,我想通过此url上的get方法获取付款信息: 获取url=''+imp\u uid 详细代码如下: def get_paymentsdetails(token, imp_uid) get_url = 'https://api.iamport.kr/payments/'+imp_uid response = R

我在sinatra中使用ruby,在导入中使用rest客户端进行支付。 我得到了通过post方法在特定url上键入的字符串标记:'/用户/getToken'。 使用此令牌,我想通过此url上的get方法获取付款信息:

获取url=''+imp\u 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}
在我使用特定imp\u uid访问get\u url之后,我得到了这个页面,{“code”:-1,“message”:“Unauthorized”,“response”:null}

我检查了get_paymentsdetails函数的参数token和imp_uid是否具有有效的字符串值,那么如何访问响应参数?? 我认为response=RestClient.get\u url上存在一些问题。。。。代码


谢谢。

来自“RestClient”类的方法“get”返回一些具有属性的对象。因此,响应几乎没有价值。你需要哪一个?你可以通过他们的名字来访问他们,这是有描述的

在您的情况下,在
response=RestClient.get get\u url…
之后,您应该具有变量
response
以及调用
response.headers
response.code>或
response.body


但是恐怕您在自动化方面有一些问题,这意味着
imp\u uid
token
不正确。这就是为什么远程服务器以http代码401(未经授权)向您发送响应的原因。如果是这样,您应该尝试检查您的
imp\u uid
令牌
。如果一切正常,请尝试获得iamport.kr的支持。

谢谢,我成功获取了响应的值,但是,在获取了一些值并检查该值是否有效后,我还有一个问题,,,,,但我在重定向页面上获得了html文本,我想这部分可能是response.body,,response.body类似于以下字符串代码:“\n\n\n示例域\n\n…”那么,我如何获得由HTML解析的响应体的页面???在此之前,我更改了如下代码:response=RestClient.get get_url,{'Authorization'=>token,:accept=>json},我可以在cotroller上使用一些响应值,@name=response[:response][:name],我检查了名称是否具有有效且正确的值。我得到了上面的最后一个问题!!!!我想将response.body解析为HTML,,,而不是字符串。如果我正确理解了您的问题,您可以使用解析HTML。您可以将
response.body
传递给nokogiri:
nokogiri::HTML(response.body)。在('body')
。还可以查看[mechanize]{}。也许它更适合你的目的