문제
이전 게시물 요청에서 GET 요청으로 전환을 시도했습니다. 그것은 그것이 얻는 것을 가정하지만 결국 게시물을 수행합니다.
PHP에서 다음을 시도했습니다.
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, null);
curl_setopt($curl_handle, CURLOPT_POST, FALSE);
curl_setopt($curl_handle, CURLOPT_HTTPGET, TRUE);
내가 무엇을 놓치고 있습니까?
추가 정보 : 이미 게시물 요청을 수행 할 연결이 있습니다. 그것은 성공적으로 완료되지만 나중에 연결을 재사용하고 다시 전환하려고 할 때 위의 세트를 사용하여 다시 전환하면 여전히 불완전한 포스트 헤더로 내부적으로 게시물을 수행하게됩니다. 문제는 그것이 Get을 수행한다고 생각하지만 컨텐츠 길이 매개 변수없이 포스트 헤더를 넣고 연결이 411 오류와 함께 실패한다는 것입니다.
해결책 3
해결 : 문제는 여기에 있습니다.
나는 설정했다 POST
둘 다를 통해 _CUSTOMREQUEST
그리고 _POST
그리고 _CUSTOMREQUEST
지속되었습니다 POST
동안 _POST
전환 _HTTPGET
. 서버는 헤더를 가정했습니다 _CUSTOMREQUEST
올바른 사람이되어 411과 함께 돌아 왔습니다.
curl_setopt($curl_handle, CURLOPT_CUSTOMREQUEST, 'POST');
다른 팁
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;
With a POST you pass the data via the CURLOPT_POSTFIELDS option instead of passing it in the CURLOPT__URL. ------------------------------------------------------------------------- $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;
참고 curl_setopt()
문서 ~을 위한 CURLOPT_HTTPGET
(강조 추가) :
curlopt_httpget 세트와 동일하게
TRUE
에게 초기화 HTTP 요청 방법.
get은 기본값이므로 요청 메소드가 변경된 경우에만 필요합니다.
curl_exec ($ curl_handle)을 호출하기 전에 이것을 추가하십시오.
curl_setopt($curl_handle, CURLOPT_CUSTOMREQUEST, 'GET');
기본적으로 CURL 요청을 얻으려면 GET CURL 요청을 위해 옵션을 설정할 필요가 없습니다.