javascript - POSTMAN PUT 请求不更新值

标签 javascript api postman multipartform-data imgur

假设API测试员的位置为https://imgur.com/ ,我正在测试 PUT 请求以更改帐户设置。 我正在关注这个 api 文档 enter image description here 以上链接https://apidocs.imgur.com/#7bc88d39-d06d-4661-afff-38ea5b9a1d0a

检查步骤

  1. 添加相关信息如下,我将 show_mature 和 newsletter_subscribed 设置为 true

enter image description here 2. 设置访问 token enter image description here 3.点击发送 对此的响应是 200,如下所示 enter image description here

  • 检查详细信息是否已更新,如以下屏幕截图所示 enter image description here
  • 预期:将 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 🙄。

    在这里回答是为了在 中提供规范的答案标签这个废话。

    文档中的所有 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/

    相关文章:

    javascript - 如何迭代多个对象并删除某个属性

    php - 如何在 CodeIgniter 中将我的 API 和随 secret 钥生成器从第三方 URL 获取到我的 Controller 中

    javascript - 为什么 React Router 会导致 Web 应用程序崩溃?

    postman |错误: Parse Error: Invalid character in chunk size

    javascript - 我无法在 javascript 中使用此方法转换二进制文件,但它可以在 java 中使用

    javascript - node.js http.request 事件流 - 我的 END 事件去哪儿了?

    php - php POST 问题 - 登录请求中的 POST 正文为空

    c# - 调用 Blazor 应用程序时,Postman 调用无限旋转

    javascript - 将 html 页面加载到页面上的 div 中

    api - 如何将文本折叠和折叠代码块数据保存到 .sublime-workspace?