更新WordPress API端点后遇403错误,缺失User-Agent如何修复?
问题分析与修复方案
代码中的核心错误
- User-Agent头语法错误:
$xag = "USER-AGENT": " . $userAgent;这行存在语法错误,应将冒号替换为字符串连接符.,正确写法为$xag = "USER-AGENT: " . $userAgent;,错误语法会导致HTTP头格式无效,服务器无法识别。 - JSON格式不规范:请求体
$content中的字符串使用了单引号(如'someID'),但JSON强制要求字符串用双引号,格式错误会导致API无法解析请求,同时可能触发WAF拦截。 - 头信息设置冗余:手动拼接User-Agent头容易出错,curl提供了专门的
CURLOPT_USERAGENT选项,设置更可靠。
修复后的完整代码
<?php // transactional send $userAgent = 'Mozilla/5.0 (Macintosh; Intel somestuff) AppleWebKit/somenumbers (KHTML, like Gecko) Chrome/morenumbers Safari/lastnumbers'; $url = "https://updated.api.net/" . $account . "/api/transactional/send"; $xun = "USERNAME: " . USERNAME; $xpw = "PASSWORD: " . PASSWORD; $xac = "ACCOUNT_CODE: " . ACCOUNT_CODE; // 修复User-Agent头语法 $xag = "USER-AGENT: " . $userAgent; // 修复JSON字符串引号问题,统一使用双引号 $content = '{ "message_id": "someID", "campaign_id": "anotherID", "recipients": ["myemail@yahoo.com"], "sending_connection_id": "sendID" }'; $curl = curl_init($url); curl_setopt($curl, CURLOPT_HEADER, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // 推荐使用CURLOPT_USERAGENT替代手动拼接头,注释掉下面的$xag并启用此行更可靠 // curl_setopt($curl, CURLOPT_USERAGENT, $userAgent); curl_setopt($curl, CURLOPT_HTTPHEADER, array( "Content-type: application/json", $xun, $xpw, $xac, $xag )); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $content); $json_response = curl_exec($curl); $status = curl_getinfo($curl, CURLINFO_HTTP_CODE); if ($status != 200 && $status != 201) { error_log("Error: call to URL $url failed with status $status, response $json_response, curl_error " . curl_error($curl) . ", curl_errno " . curl_errno($curl)); } echo "<script>alert('$status');</script>"; curl_close($curl); $response = json_decode($json_response, true); ?>
额外优化建议
- 生成JSON内容时,优先使用
json_encode()从数组转换,彻底避免手动编写JSON的格式错误:
$contentArray = [ "message_id" => "someID", "campaign_id" => "anotherID", "recipients" => ["myemail@yahoo.com"], "sending_connection_id" => "sendID" ]; $content = json_encode($contentArray);
内容的提问来源于stack exchange,提问作者John Beasley
相关产品推荐
相关产品推荐

