일반적인 상황에서 CURL을 사용하여 POST 데이터를 제출할 때 다음과 같이 작성하는 데 익숙합니다.
curl_setopt( $ch, CURLOPT_POSTFIELDS,$post_data);
그러나 이 작성 방법은 때로는 그다지 유용하지 않습니다. 어쩌면 500을 얻을 수도 있습니다. 서버에서 오류가 반환되었습니다. 그러나 소켓을 사용하여 서버에 데이터를 제출하려고 하면 매우 정확한 결과를 얻을 수 있습니다.
예를 들어 서버에 다음 PHP 파일이 있습니다.
<?php print_r($_SERVER);?>
CURL을 사용하여 세부 사항에 주의를 기울이지 않고 일부 데이터를 서버에 보내는 경우 다음과 같은 결과를 얻을 수 있습니다. 이상적인 결과는 아닙니다.
[CONTENT_TYPE] => multipart/form-data; boundary=—————————-f924413ea122
그러나 $post_data 대신 http_build_query($post_data)를 사용한 다음 이 PHP 스크립트에 데이터를 제출하면 위와는 다른 결과를 얻게 됩니다. 이것이 이상적인 결과입니다. :
[CONTENT_TYPE] => application/x-www-form-urlencoded
위의 예에서 CURL을 사용하고 매개변수가 데이터인 경우 서버에 데이터를 제출할 때 HTTP 헤더가 Content_type: application/ x-www-를 전송한다는 것을 어렵지 않게 알 수 있습니다. 양식-urlencoded. 이는 일반 웹페이지