현재 위치: > 최신 기사 목록> 게시물 요청을 보낼 때 Curl_Close 후에 연결이 올바르게 닫히도록하려면 어떻게해야합니까?

게시물 요청을 보낼 때 Curl_Close 후에 연결이 올바르게 닫히도록하려면 어떻게해야합니까?

gitbox 2025-05-17

PHP에서 Curl은 URL을 통해 요청을 보내고 응답을받을 수있는 매우 강력한 도구입니다. Curl을 통해 Get, Post, Put, Delete 등과 같은 HTTP 요청을 쉽게 보낼 수 있습니다.

 $ch = curl_init();  // 초기화 cURL 세션
curl_setopt($ch, CURLOPT_URL, "https://gitbox.net/your-api-endpoint");  // 요청을 설정하십시오 URL
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  // 리턴 응답을 문자열로 설정하십시오

// 의 경우 POST 묻다,설정 POST 데이터
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(['key' => 'value']));

$response = curl_exec($ch);  // 执行묻다并获取응답

curl_close($ch);  // 폐쇄 cURL 세션

위의 코드에서는 Curl_Exec을 사용하여 요청을 실행하고 CURL 세션을 닫으라는 요청을 실행 한 후 Curl_Close를 호출합니다.

2. 게시물 요청이 완전히 전송되었는지 확인하십시오.

Curl_Close를 호출하기 전에 PHP는 Curl_Exec을 호출 한 후 요청 응답을 기다립니다. 따라서 Curl_Exec이 성공적으로 실행되는 한 게시물 요청 데이터가 전송되었습니다. 그러나 특히 긴 요청이 실행될 때 연결을 닫기 전에 요청이 완전히 전송되도록하는 것이 중요합니다.

사후 요청 데이터가 완전히 전송되고 연결이 정상적으로 닫히도록 Curl_GetInfo를 사용하여 상태 코드 또는 응답의 다른 응답 정보를 확인할 수 있습니다.

 $ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://gitbox.net/your-api-endpoint");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(['key' => 'value']));

$response = curl_exec($ch);

// 获取묻다的详细信息
$info = curl_getinfo($ch);
if ($info['http_code'] == 200) {
    // 처리 응답
    echo "POST 묻다已成功发送,응답:$response";
} else {
    echo "묻다失败,HTTP 상태 코드:" . $info['http_code'];
}

curl_close($ch);

curl_getInfo를 통해 얻은 http_code 정보는 요청이 성공적으로 전송되었는지 여부를 결정하는 데 도움이 될 수 있습니다. HTTP 상태 코드가 200 인 경우 (요청이 성공했음을 나타냅니다) 게시물 요청이 완전히 전송되었다고 결정할 수 있습니다.

3. 시간 초과 및 오류를 처리합니다

때로는 게시물 요청을 보낼 때 연결 시간 초과 또는 기타 네트워크 문제가 발생할 수 있습니다. 이 경우 curl_setopt를 사용하여 타임 아웃 매개 변수를 설정하는 것이 매우 중요합니다.

 $ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://gitbox.net/your-api-endpoint");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(['key' => 'value']));
curl_setopt($ch, CURLOPT_TIMEOUT, 30);  // 설정超时为 30 두번째

$response = curl_exec($ch);

// 처리 오류
if (curl_errno($ch)) {
    echo "cURL 실수: " . curl_error($ch);
} else {
    echo "응답: $response";
}

curl_close($ch);

Curlopt_Timeout을 설정하면 요청이 합리적인 시간 내에 완료되도록하고 타임 아웃이있는 경우 즉시 요청을 중지합니다.

4. 연결을 닫아야하는 이유는 무엇입니까?

각 컬 요청이 끝나면 Curl_Close를 호출하는 것이 매우 중요합니다. 컬 관련 리소스를 자유롭게하고 HTTP 연결을 닫을 수 있습니다. Curl_Close가 호출되지 않으면 메모리 누출 또는 기타 자원 폐기물로 이어질 수 있습니다.

 curl_close($ch);  // 必须폐쇄连接以释放资源

장기적으로 실행되는 응용 프로그램에서 연결을 닫지 않으면 특히 많은 수의 요청을 보낼 때 시스템 리소스의 과도한 소비가 발생할 수 있습니다. 따라서 컬을 사용할 때마다 Curl_Close 에 전화하여 연결을 닫으십시오.