CURL을 사용하여 원격 서버에 HTTP POST 요청을 보내는 간단한 PHP 스크립트가 있습니다.서버가 POST 요청에 응답하지 않습니다. CURL + PHP
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://91.250.77.10/test.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, array('a' => 'b'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$contents = curl_exec($ch);
$error = curl_error($ch);
curl_close($ch);
if ($error)
echo $error;
else
echo $contents;
이렇게하면 "서버에서 응답 없음"오류가 발생합니다. 요청을 원격 서버의 액세스 로그에서도 찾을 수 없습니다! 나는 다음 쿼리 문자열, 즉 :
curl_setopt($ch, CURLOPT_POSTFIELDS, '&a=b');
로 postfields를 보내는 경우
은 무엇보다, 모든 것이 괜찮습니다.
원격 서버의 Apache 또는 PHP 구성에 문제가있는 것 같습니다. 어떤 힌트?
편집 : 설정시 다중/폼 데이터를 (CURL 그 유형을 사용 : 지금으로
, 그것은 콘텐츠 형식으로 요청 수용 (또는 올바르게 처리)하지 않는 서버처럼 보인다 배열을 포스트 필드로 설정했지만 문자열을 설정할 때는 그렇지 않습니다.)
요청이있는 파일을 보내야하므로 multipart/form-data를 사용해야합니다. 그렇다면이 서버를 올바르게 처리하는 방법은 무엇입니까?
'CURLOPT_POSTFIELDS는 [...]이 매개 변수는 하나 'para1 = VAL1 & para2 = val2만큼 및 같은를 urlencoded 문자열로 전달 될 수있다 .. . "또는 필드 이름이 키이고 값이 필드 데이터 인 배열로 참조하십시오. http://www.php.net/manual/en/function.curl-setopt.php – Eleazan
@ Eleazan Thanks correct – DevZer0
그것은 내가 curl_setopt ($ ch, CURLOPT_HTTPHEADER, array ('Content-Type : multipart/form-data'))로 테스트했을 때 문제가 아니었다. –