PHP CURL에서 POST에서 GET으로 전환하는 방법
이전 POST 요청에서 Get 요청으로 전환해 보았습니다.Get이라고 가정하고, 최종적으로 투고를 실시합니다.
PHP에서 다음을 시도했습니다.
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, null);
curl_setopt($curl_handle, CURLOPT_POST, FALSE);
curl_setopt($curl_handle, CURLOPT_HTTPGET, TRUE);
제가 무엇을 빠뜨리고 있나요?
추가 정보:POST 요청을 실행하도록 설정된 연결이 이미 있습니다.이 작업은 정상적으로 완료되지만 나중에 연결을 재사용하여 위의 setopts를 사용하여 GET으로 전환하려고 해도 POST 헤더가 불완전하여 내부에서 POST가 실행됩니다.문제는 GET을 실행하고 있다고 믿지만 content-length 파라미터를 지정하지 않고 POST 헤더를 삽입하여 접속에 실패하고 411 ERROR이 발생한다는 것입니다.
GET 요청을 수행할 때는 URL 끝에 쿼리 문자열을 넣어야 합니다.
$qry_str = "?x=10&y=20";
$ch = curl_init();
// Set query data here with the URL
curl_setopt($ch, CURLOPT_URL, 'http://example.com/test.php' . $qry_str);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 3);
$content = trim(curl_exec($ch));
curl_close($ch);
print $content;
POST에서는 데이터를 CURLOPT__URL로 전달하는 대신 CURLOPT_POSTFILDS 옵션을 통해 전달합니다.
$qry_str = "x=10&y=20";
curl_setopt($ch, CURLOPT_URL, 'http://example.com/test.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 3);
// Set request method to POST
curl_setopt($ch, CURLOPT_POST, 1);
// Set query data here with CURLOPT_POSTFIELDS
curl_setopt($ch, CURLOPT_POSTFIELDS, $qry_str);
$content = trim(curl_exec($ch));
curl_close($ch);
print $content;
에 대한 문서 메모:CURLOPT_HTTPGET
(추가) :
[CURLOPT 설정_]HTTPGET과 같음]
TRUE
HTTP 요청 방식을 GET으로 리셋합니다.
GET이 기본이므로 요청 방식이 변경된 경우에만 필요합니다.
curl_exec($curl_handle)을 호출하기 전에 이 값을 추가합니다.
curl_setopt($curl_handle, CURLOPT_CUSTOMREQUEST, 'GET');
해결: 문제는 다음과 같습니다.
세팅했습니다.POST
양쪽을 통해서_CUSTOMREQUEST
그리고._POST
및 그_CUSTOMREQUEST
로서 끈질긴.POST
하는 동안에_POST
로의 전환._HTTPGET
. 서버는 다음에서 헤더를 맡았습니다._CUSTOMREQUEST
411을 가지고 돌아왔죠.
curl_setopt($curl_handle, CURLOPT_CUSTOMREQUEST, 'POST');
CURL 요청은 기본적으로 GET이므로 GET CURL 요청을 만들기 위한 옵션을 설정할 필요가 없습니다.
조건에 따라 추가합니다.이 행이 있는 코드는 POST 요청이며, 그렇지 않으면 기본적으로 GET이 됩니다.또한 POST 요청이라도 URL 끝에 파라미터를 추가할 수 있습니다.
curl_setopt($curl_handle, CURLOPT_POST, 1);
언급URL : https://stackoverflow.com/questions/1225409/how-to-switch-from-post-to-get-in-php-curl
'source' 카테고리의 다른 글
컬렉션의 이유정렬은 빠른 정렬 대신 병합 정렬을 사용합니까? (0) | 2022.09.12 |
---|---|
마이그레이션 시 원시 SQL 실행 (0) | 2022.09.11 |
mod_rewrite가 php에서 활성화 되어 있는지 확인하는 방법 (0) | 2022.09.11 |
MIN() 함수를 사용한 MySQL의 잘못된 결과 (0) | 2022.09.11 |
Grunt, NPM 및 Bower의 차이(패키지).json vs bower.json) (0) | 2022.09.11 |