私はこのようなGETリクエストにcURLを使用しようとしています:
function connect($id_user){
$ch = curl_init();
$headers = array(
'Accept: application/json',
'Content-Type: application/json',
);
curl_setopt($ch, CURLOPT_URL, $this->service_url.'user/'.$id_user);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_HEADER, 0);
$body = '{}';
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_POSTFIELDS,$body);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Timeout in seconds
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$authToken = curl_exec($ch);
return $authToken;
}
あなたが見るように、私はリクエストのボディとして$ bodyを渡したいが、それが正しいかどうかわからず、実際にこれをデバッグすることはできません、あなたはcurl_setopt($ch, CURLOPT_POSTFIELDS,$body);
を使用する権利があるかどうかを知っていますGETリクエストで?
このコードはPOSTで完璧に機能します。今、私はこれをGETに変更しようとしています
CURLOPT_POSTFIELDS
は名前が示すように、POST
リクエストのボディ(ペイロード)用です。 GET
リクエストの場合、ペイロードはクエリ文字列形式のURLの一部です。
あなたの場合、送信する必要がある引数(ある場合)を使用してURLを作成し、cURLの他のオプションを削除する必要があります。
curl_setopt($ch, CURLOPT_URL, $this->service_url.'user/'.$id_user);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_HEADER, 0);
//$body = '{}';
//curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
//curl_setopt($ch, CURLOPT_POSTFIELDS,$body);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
受け入れられた答えは間違っています。 GET
リクエストには実際に本文を含めることができます。これは解決策です WordPressで実装 、例として:
curl_setopt( $ch, CURLOPT_CUSTOMREQUEST, 'GET' );
curl_setopt( $ch, CURLOPT_POSTFIELDS, $body );
編集:明確にするために、最初のcurl_setopt
はこの例では必要ありませんが、害はありません。参照されているサンプルコードを完全に示すために含まれています。
<?php
$post = ['batch_id'=> "2"];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'https://example.com/student_list.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
$response = curl_exec($ch);
$result = json_decode($response);
curl_close($ch); // Close the connection
$new= $result->status;
if( $new =="1")
{
echo "<script>alert('Student list')</script>";
}
else
{
echo "<script>alert('Not Removed')</script>";
}
?>
同様の問題でこれに来る人のために、 このリクエストライブラリ を使用すると、PHPアプリケーション内で外部HTTPリクエストを無意識に作成できます。簡略化されたGET、POST、PATCH、DELETE、およびPUT要求。
サンプルのリクエストは次のようになります
use Libraries\Request;
$data = [
'samplekey' => 'value',
'otherkey' => 'othervalue'
];
$headers = [
'Content-Type' => 'application/json',
'Content-Length' => sizeof($data)
];
$response = Request::post('https://example.com', $data, $headers);
// the $response variable contains response from the request
同じものに関するドキュメントは、プロジェクトの README.md にあります。