user1460815
user1460815

Reputation: 29

Why am I getting a HTTP 400 bad request error?

<?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;
?>

After running this code I am getting HTTP Error 400. The request is badly formed. What should I do? I tried other url they are working fine the only problem is with this. If I copy this url in browser it's working but it's giving error 400 when I put it and run it in curl.

Upvotes: 3

Views: 15322

Answers (3)

Jay Julian Payne
Jay Julian Payne

Reputation: 780

I see this a lot. Usually fixed by running the request through urlencode().

Upvotes: 3

Trott
Trott

Reputation: 70075

You are appending $request at the end of the assignment to $url but you don't show us what $request contains.

Chances are that the value of $request tacked on the end that way is making the URL invalid.

I would expect to at least see a & at the end of the hardcoded URL string if you are going to append $request like that (although as @MichaelKrelin-hacker points out, this is unlikely to be the source of this specific error).

Upvotes: 0

GBD
GBD

Reputation: 15981

Try building URL with http_build_query as below

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

The problem is probably due to unescaped characters that have special meanings in URLs.

http_build_query escapes them for you safely.

Upvotes: 2

Related Questions