修改浏览器中请求的HTTP方法



我正在学习Python,目前我正在尝试请求模块。

我做了什么:
这是我使用的端点的API文档:
https://trackapi.nutritionix.com/docs/#/default/post_v2_natural_exercise
这是相关的Python代码:

EXERCISES_ENDPOINT = "https://trackapi.nutritionix.com/v2/natural/exercise"
header = {
"x-app-id": APP_ID,
"x-app-key": API_KEY
}
body = {
"query": "Ran 2 miles and walked  for 3Km."
}
response = requests.post(url=EXERCISES_ENDPOINT, headers=header, json=body)

对应的http请求URL应为:
https://trackapi.nutritionix.com/v2/natural/exercise?Ran%202%20miles%20and%20walked%20%20for%203Km.

我的问题如下:

  • 在Python中,代码列表工作得很好,我的响应如预期的
  • 如果我使用邮差,这也工作得很好,因为在- python和邮差-我可以指定我的请求作为POST方法
  • 但是如果我在我的MS Edge浏览器(和Chrome)使用URL,我得到一个错误:不能get/v2/natural/exercise

报头信息是可以的,因为我告诉浏览器他们使用"ModHeader"扩展。
但是为什么我的浏览器做GET而不是POST,我怎么能用MS Edge浏览器的开发工具来改变这一点呢?
重要的是要知道为什么浏览器做一个GET??一般来说,浏览器是否只能执行GET,而其他方法(POST、PUT、DELETE)则不能这样执行。但这对我来说没有意义:)

Thanks much in advance

但是为什么我的浏览器做GET而不是POST

可能是因为您正在尝试将地址输入浏览器的地址栏。

它被设计为发出GET请求,因为UI中没有任何设计来收集发出另一种请求类型所需的任何数据。

发出POST请求的通常方式是以HTML<form>的形式为它提供一个用户界面。

最新更新