HTTParty parsed_response 返回字符串而不是哈希值

发布于 2024-12-23 11:13:54 字数 261 浏览 1 评论 0原文

如果您收到响应代码 200,HTTParty 的 parsed_response 方法将返回一个哈希值,否则无论网络服务器是否返回 XML 响应,它都会返回一个字符串。

HTTParty.get(post_url).parsed_response.class # Depends on response code

即使在 403 上,亚马逊也会提供 XML(解释出了什么问题)。

我是否遗漏了什么?

HTTParty's parsed_response method returns a Hash if you get a response code 200 but otherwise it will return a String regardless if the webserver returns a XML response.

HTTParty.get(post_url).parsed_response.class # Depends on response code

Amazon will provide XML (explaining what went wrong) even on a 403.

Am I missing something?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

情深缘浅 2024-12-30 11:13:55

HTTParty 根据 HTTP 响应的 Content-Type 标头来解析其 #parsed_response。验证该 HTTP 标头的值是什么。就您而言,您希望它是 application/xml

HTTParty parses its #parsed_response based on what the HTTP response's Content-Type header is. Verify what the value is for that HTTP header. In your case, you'd want it to be application/xml.

变身佩奇 2024-12-30 11:13:55

如果今天仍然有人遇到此问题,get 可以采用格式参数,这可以帮助您确保您的 HTTParty::Response 对象是哈希:

url = HTTParty.get('http://domain.com', format: :json) # class is a Hash

In case anyone is still encountering this issue today, get can take a format parameter, which can help you ensure your HTTParty::Response object is a Hash:

url = HTTParty.get('http://domain.com', format: :json) # class is a Hash
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文