ruby - 如何在 httparty ruby 中使用 api 密钥获取 api 数据
问题描述
我一直在尝试使用 httparty 获取 api 数据并一直这样做
require 'httparty'
doc = HTTParty.get('http://ip-api.com/php/105.49.23.183')
puts doc['status']
api响应是
a:14:{s:6:"status";s:7:"success";s:7:"country";s:5:"Kenya";s:11:"countryCode";s:2:"KE";s:6:"region";s:2:"30";s:10:"regionName";s:16:"Nairobi Province";s:4:"city";s:7:"Nairobi";s:3:"zip";s:5:"09831";s:3:"lat";d:-1.25909;s:3:"lon";d:36.7858;s:8:"timezone";s:14:"Africa/Nairobi";s:3:"isp";s:17:"Safaricom Limited";s:3:"org";s:3:"SFC";s:2:"as";s:25:"AS33771 Safaricom Limited";s:5:"query";s:13:"105.49.23.183";}
但是当我运行我的脚本时的输出只是
status
但我需要它来返回响应status
键的数据success
。我无法弄清楚如何做到这一点。最初在 python 中这个方法有效,但是 ruby 是不同的
解决方案
只需使用JSON 格式的 API端点:
require 'httparty'
doc = HTTParty.get('http://ip-api.com/json/105.49.23.183')
puts doc['status']
#=> "success"
注意URL 路径中的json
而不是。php
无论如何,不推荐使用序列化的 PHP端点。
推荐阅读
- r - 从网页中提取表格
- php - 在 Laravel 5.0 中加入具有多个 Where 条件的表
- java - 使用 Java 在 Tomcat 9 中创建文件时出错
- selenium-webdriver - 使用 alt 定位器查找 img 并单击
- mysql - How to modify a backup file so that the contents can be restored
- scala - 从 scala 脚本内部执行 hdfs 命令
- c# - 当他们的前 8 位数字匹配时如何获取行比较
- html - 为什么我不能从标题中删除最大宽度为 1024px 的 backround-attachment: fixed 属性
- reactjs - 如何使用 Lodash _.find() 和 setState() 更改状态中的值?
- nativescript - 垂直移动项目列表