为什么我收到HTTP 400错误请求错误?

时间:2012-10-13 13:27:33

标签: php http curl http-status-code-400

<?php
$url ="http://absolutesms.com/Sendsms.aspx?userid=userid&password=password&clientid=clientid&senderid=absolute&mobilenumber=919000024365&smsmessage=SingleMessage".$request;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$curl_scraped_page = curl_exec($ch);
curl_close($ch);
echo $curl_scraped_page;
?>

运行此代码后,我得到HTTP Error 400. The request is badly formed。我该怎么办?我尝试了其他网址,他们工作正常唯一的问题是这个。 如果我在浏览器中复制这个URL它正在工作,但是当我把它放在curl中时它会给出错误400。

3 个答案:

答案 0 :(得分:3)

我看到了很多。通常通过urlencode()运行请求来修复。

答案 1 :(得分:1)

尝试使用http_build_query构建URL,如下所示

$url = 'http://absolutesms.com/Sendsms.aspx?' . http_build_query(array(
    'userid' => $userid,
    'clientid' => $clientid,
///... continue
));

问题可能是unescaped characters that have special meanings in URLs造成的。

http_build_query安全地逃脱了他们。

答案 2 :(得分:0)

您在$request的作业结尾处追加$url,但未向我们展示$request包含的内容。

有可能$request的最终结果是使URL无效。

如果您打算像这样附加&,我希望至少在硬编码的URL字符串末尾看到$request(尽管@ MichaelKrelin-hacker指出,这不太可能成为这个特定错误的来源。)

相关问题