【问题标题】:Why am I getting a HTTP 400 bad request error?为什么我收到 HTTP 400 错误请求错误?
【发布时间】:2012-10-04 02:58:58
【问题描述】:
<?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。

【问题讨论】:

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


    【解决方案1】:

    我经常看到这种情况。通常通过 urlencode() 运行请求来修复。

    【讨论】:

      【解决方案2】:

      尝试使用 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 为您安全地逃脱它们。

      【讨论】:

        【解决方案3】:

        您在作业末尾附加$request$url,但您没有向我们展示$request 包含的内容。

        很有可能最后添加的$request 的值会导致 URL 无效。

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

        【讨论】:

        • 缺少&amp; 不会使URL 无效,即使它将下一个参数粘合到最后一个参数。最有可能使 url 无效的是它的大小或一些非常无效的字符。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-03
        相关资源
        最近更新 更多