You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress调用API获取访问令牌后请求返回405错误

代码问题排查与修正
  • 请求编码格式不匹配
    wp_remote_post 传入数组格式的 body 参数时,默认会按 application/x-www-form-urlencoded 格式编码为表单参数,自动设置对应Content-Type头。如果目标API仅接受JSON格式的请求体,就会因格式不匹配触发405错误。
    修正方式:

    • 将请求体数组通过 json_encode() 转为JSON字符串传入
    • 显式在请求参数中声明和Postman一致的请求头
      示例修正代码:
    $body = array(
      'accesstoken' => $accesstoken,
      'eventid' => '29102901920129',
      'attendeeid' => '1212121902910920',
    );
    
    $args = array(
      'method' => 'POST',
      'headers' => array(
        'Content-Type' => 'application/json',
        'Accept' => 'application/json',
      ),
      'body' => json_encode($body),
      'redirection' => 0,
    );
    
  • 重定向导致请求方法降级
    WordPress HTTP客户端默认会跟随重定向,且遇到301/302跳转时会将原POST请求转为GET请求。如果目标接口存在域名跳转逻辑,最终到达服务端的请求会变为GET,自然触发“方法不允许”的405错误。
    修正方式:在请求参数中添加 'redirection' => 0,禁止自动跟随重定向,避免POST方法被自动改写为GET。

  • 默认请求头触发拦截
    WordPress HTTP客户端会默认携带 User-Agent: WordPress/版本号; 站点地址 的特征头,部分第三方API的WAF规则会拦截这类特征请求,返回泛化的405错误。
    修正方式:在请求头中自定义和Postman完全一致的User-Agent值,对齐请求特征避免被拦截。

  • 校验请求参数位置
    对照Postman中成功请求的参数传递规则,确认access token、eventid等参数是要求放在请求体还是请求头中,如果参数位置和接口要求不匹配,也可能触发校验异常后返回405响应。


内容的提问来源于stack exchange,提问作者DigM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.23 13:54:08