문제

이전 게시물 요청에서 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 요청을 위해 옵션을 설정할 필요가 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top