1

我正在尝试使用httpiehttps://ip2country.info/发出一个简单的 http 请求。

对于我的生活,我无法让它工作。我正在尝试请求此 URL:https ://api.ip2country.info/ip?5.6.7.8

当我在 Postman 中使用它时,它工作得很好。但在 httpie 中,这是我的请求和响应:

请求:http api.ip2country.info ip==5.6.7.8 响应:HTTP/1.1 301 Moved Permanently

任何帮助,将不胜感激!

编辑:截图

网址: 在此处输入图像描述

邮差: 在此处输入图像描述

4

1 回答 1

1

测试用例

就目前而言,https://api.ip2country.info/ip?5.6.7.8httpie 的请求返回重定向错误代码,但在 postman 中有效api.ip2country.info/ip?5.6.7.8

解决方案

该请求在邮递员中有效,因为邮递员使用硬编码的查询参数直接访问 url。通过在命令行上允许构建器交互,Httpie 应该“更容易”。

该命令本质上将构建一个不同于插入邮递员的预期 urlhttp api.ip2country.info ip==5.6.7.8的请求。http://api.ip2country.info?ip=5.6.7.8

  • 故意的:https://api.ip2country.info/ip?5.6.7.8
  • 实际的: http://api.ip2country.info?ip=5.6.7.8

通过直接将查询参数编码为 httpie 并将方案更改为 https like https api.ip2country.info/ip?5.6.7.1,响应

{
    "countryCode": "DE",
    "countryCode3": "DEU",
    "countryEmoji": ""  ,
    "countryName": "Germany"
}

被检索。唯一提供的查询参数是一个没有值的单键 IP,httpie 在他们的构建器中不支持它(因为它是相当禁忌的),并且要求它只是手动附加到请求 URL 的末尾?{ip}

于 2021-12-18T17:43:32.410 回答