PHP cURL GET 요청 및 요청 본문
다음과 같은 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로 변경하려고 합니다.
받아들여진 답이 틀렸습니다.GET
요청에 실제로 본문이 포함될 수 있습니다.WordPress에서 구현한 솔루션은 다음과 같습니다.
curl_setopt( $ch, CURLOPT_CUSTOMREQUEST, 'GET' );
curl_setopt( $ch, CURLOPT_POSTFIELDS, $body );
편집: 명확하게 하기 위해, 이니셜curl_setopt
libcurl은 HTTP 방법을 기본값으로 하기 때문에 이 경우에 필요합니다.POST
사용 시CURLOPT_POSTFIELDS
(설명서 참조).
CURLOPT_POSTFIELDS
이름에서 알 수 있듯이, 그것은 a의 (몸통)을 위한 것입니다.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);
<?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 에서 확인할 수 있습니다.
당신은 올바른 방법으로 그것을 했습니다.
curl_setopt($ch, CURLOPT_POSTFIELDS,$body);
하지만 나는 당신이 실종된 것을 알아챘어요.
curl_setopt($ch, CURLOPT_POST,1);
언급URL : https://stackoverflow.com/questions/17230246/php-curl-get-request-and-requests-body
'programing' 카테고리의 다른 글
재할당 후 버퍼의 데이터가 손실됩니까? (0) | 2023.07.25 |
---|---|
PowerShell에서 함수 오버로드 (0) | 2023.07.25 |
개체 속성으로 어레이에서 개체 제거 (0) | 2023.07.25 |
키/값 JavaScript 개체의 키를 가져오는 방법 (0) | 2023.07.25 |
패키지에 파이썬 모듈의 이름을 나열하는 표준 방법이 있습니까? (0) | 2023.07.25 |