2つのパラメータのバリデーションのAPIを作成しました。
API自体はGETで作成して、URLを直叩きで正常に動作しているのは確認済みです。
ただサーバ側からcurlで実行すると、error_noが6(CURLE_COULDNT_RESOLVE_HOST)が返ってくるようです。
https://www.php.net/manual/ja/function.curl-errno.php
適当にリクエスト先にqiitaのAPIを叩いたらerrorは出ずに正常に叩けたことを確認しています。
https://qiita.com/api/v2/tags/PHP/items
ソースは以下の通りです。
PHP
1// リクエストURL 2$protocol = $_SERVER['HTTPS'] === "on" ? "https://" : "http://"; 3$query_string = "?last_name=" . Request::get('last_name') . "&first_name=" . Request::get('first_name'); 4$request_url = $protocol . $_SERVER['HTTP_HOST']. "/api/validation.php" . $query_string; 5 6// バリデーション実行 7$ci = curl_init(); 8curl_setopt($ci, CURLOPT_HTTPHEADER, array('Content-Type: application/json;charset=utf-8')); 9 10curl_setopt($ci, CURLOPT_URL, $request_url); 11curl_setopt($ci, CURLOPT_TIMEOUT, 10); 12curl_setopt($ci, CURLOPT_RETURNTRANSFER, 1); 13curl_setopt($ci, CURLOPT_FORBID_REUSE, 0); 14curl_setopt($ci, CURLOPT_CUSTOMREQUEST, 'GET'); 15curl_setopt($ci, CURLOPT_SAFE_UPLOAD, false); 16 17$response = curl_exec($ci); 18$errno = curl_errno($ci); // 6 19$error = curl_error($ci); // name lookup timed out 20$code = curl_getinfo($ci, CURLINFO_HTTP_CODE); // 0
Docker環境で作業しておりhostsは以下のように記載しています。
127.0.0.1 test.local
どなたか原因と解決策を教えていただけないでしょうか?
※PHPのバージョンは5.3です。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。