2012-10-13 153 views
3
<?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。我该怎么办?我试过其他网址,他们正在努力罚款唯一的问题是与此。 如果我在浏览器中复制此网址,它正在工作,但当它放入并在卷曲中运行时,它会给出错误400。为什么我会收到HTTP 400错误的请求错误?

+1

和什么是请求? –

回答

0

您在作业结束时附加$request$url,但您不会向我们展示$request包含的内容。

很可能是因为这种方式导致网址无效而导致$request的值增加。

我希望至少看到了&在硬编码的URL字符串的结尾,如果你要追加$request那样(尽管@ MichaelKrelin黑客所指出的,这是不太可能这个特定的源错误)。

+0

即使将下一个参数粘贴到最后一个参数,缺少&也不会使URL无效。最有可能导致网址无效的是其大小或可能是一些非常无效的字符。 –

+0

@ MichaelKrelin-hacker好点。编辑答案。 – Trott

0

尝试建立网址http_build_query如下

$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

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