假设API测试员的位置为https://imgur.com/ ,我正在测试 PUT 请求以更改帐户设置。 我正在关注这个 api 文档 以上链接https://apidocs.imgur.com/#7bc88d39-d06d-4661-afff-38ea5b9a1d0a
检查步骤
- 添加相关信息如下,我将 show_mature 和 newsletter_subscribed 设置为 true
2. 设置访问 token 3.点击发送 对此的响应是 200,如下所示
预期:将 show_mature 和 newsletter_subscribed 值设置为 true 实际:show_mature 和 newsletter_subscribed 值为 false
如果有人能让我知道为什么会发生这种情况,我将不胜感激?谢谢
最佳答案
来自Imgur API docs ...
Need help?
The Imgur engineers are always around answering questions. The quickest way to get help is by posting your question on StackOverflow with the Imgur tag.
真正有帮助的 Imgur 🙄。
在这里回答是为了在 imgur 中提供规范的答案标签这个废话。
文档中的所有 API 示例都使用某种形式的 multipart/form-data
请求正文有效负载。例如
var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer {{accessToken}}");
var formdata = new FormData();
var requestOptions = {
method: 'PUT',
headers: myHeaders,
body: formdata,
redirect: 'follow'
};
fetch("https://api.imgur.com/3/account/{{username}}/settings", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
和
curl --location --request POST 'https://api.imgur.com/oauth2/token' \
--form 'refresh_token="{{refreshToken}}"' \
--form 'client_id="{{clientId}}"' \
--form 'client_secret="{{clientSecret}}"' \
--form 'grant_type="refresh_token"'
除了任何上传相关端点之外,这是绝对错误。以 multipart/form-data
形式传递数据需要 API 处理该请求内容类型,猜猜看,Imgur API 不会。
他们接受的是application/x-www-form-urlencoded
。
- 在 Postman 中,这是
x-www-form-urlencoded
选项,而不是form-data
- 在 cURL 中,这是
-d
选项,而不是--form
- 在 JavaScript 中是 URLSearchParams ,不是FormData
关于javascript - POSTMAN PUT 请求不更新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71402222/