phpのcurlで400_Bad_Requestが出る原因と解決法!

PHP

こんにちは、
PHPでcurlを使用してDBにレコードを追加しようとしたのですが、
curlを使用した時にうまくデータが入りませんでした。
割と悩んだので備忘録で残します。

curlで400_Bad_Requestが出た原因はURLでした。

リクエストをするURLが原因でした。
具体的に言うと、URLをエンコードせずにリクエストをしていました。

私の場合は、URLに空白がありました。

//
//URLに空白
//
$url = "http://localhost/321 0";

curlでは、空白がNGなのできちんとURLエンコードをしてあげましょう。

//
//urlencode関数を使ってURLをエンコードします。
$url = "http://localhost/".urlencode("321 0");
 echo $url;

出力結果は、

http://localhost/321+0

となります。

注意点としては、
http://~~~からすべて、URLエンコードをしないことです。
URLですらなくなってしまい、リクエストすら送れなくなります。

おわりに

以上の方法を試してみたら上手くいく場合があるので
ぜひ試してみてください。

 

コメント

タイトルとURLをコピーしました