在浏览器中修改请求的 HTTP 方法
Modify HTTP Method for Request in Browser
我正在学习 Python,目前我正在试验请求 Module。
到目前为止我做了什么:
这是我使用的端点的 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 中,代码运行良好,我的回复符合预期
- 如果我使用 Postman,这也能正常工作,因为在 -Python 和 Postman 中 - 我可以将我的请求指定为 POST 方法
- 但是如果我在我的 MS Edge 浏览器中使用 URL(还有 Chrome),我会得到一个错误:无法获取 /v2/natural/exercise
Header 信息没问题,因为我根据“ModHeader”扩展告诉浏览器它们。
但为什么我的浏览器执行的是 GET 而不是 POST,我如何使用 MS Edge 浏览器的开发工具更改它。
对我的学习来说重要的是要知道为什么浏览器执行 GET?
浏览器是否只能在一般情况下执行 GET,而其他方法(POST、PUT、DELETE)不能以这种方式进行。但这对我来说毫无意义:)
非常感谢
But why is my Browser doing a GET and not a POST
估计是因为你在尝试将地址输入浏览器的地址栏。
这是为了发出 GET 请求而设计的,因为 UI 中没有任何东西旨在收集发出另一种请求类型所需的任何数据。
发出 POST 请求的通常方法是以 HTML <form>
.
的形式为其提供用户界面
我正在学习 Python,目前我正在试验请求 Module。
到目前为止我做了什么:
这是我使用的端点的 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 中,代码运行良好,我的回复符合预期
- 如果我使用 Postman,这也能正常工作,因为在 -Python 和 Postman 中 - 我可以将我的请求指定为 POST 方法
- 但是如果我在我的 MS Edge 浏览器中使用 URL(还有 Chrome),我会得到一个错误:无法获取 /v2/natural/exercise
Header 信息没问题,因为我根据“ModHeader”扩展告诉浏览器它们。
但为什么我的浏览器执行的是 GET 而不是 POST,我如何使用 MS Edge 浏览器的开发工具更改它。
对我的学习来说重要的是要知道为什么浏览器执行 GET?
浏览器是否只能在一般情况下执行 GET,而其他方法(POST、PUT、DELETE)不能以这种方式进行。但这对我来说毫无意义:)
非常感谢
But why is my Browser doing a GET and not a POST
估计是因为你在尝试将地址输入浏览器的地址栏。
这是为了发出 GET 请求而设计的,因为 UI 中没有任何东西旨在收集发出另一种请求类型所需的任何数据。
发出 POST 请求的通常方法是以 HTML <form>
.