Home >Backend Development >PHP Problem >How to debug curl error messages in php

How to debug curl error messages in php

coldplay.xixi
coldplay.xixiOriginal
2020-08-17 10:27:384154browse

How to debug curl error information in php: 1. Use the functions [curl_errno] and [curl_error] to return the HTTP error code and error category respectively; 2. Set [CURLOPT_VERBOSE] to true and set it to A file opened with fopen.

How to debug curl error messages in php

How to debug curl error messages in php:

The first method, First What can be used is the curl_errno and curl_error functions, which return the HTTP error code and error category respectively. For example:

<?php
$ch = curl_init(&#39;http://example.com/&#39;);
curl_exec($ch);
if (curl_errno($ch)) {
    echo &#39;Curl error: &#39; . curl_error($ch);
}
curl_close($ch);
?>

Secondly, if you need to get more detailed information, you can use the curl_getinfo function. For example:

<?php
$ch = curl_init(&#39;http://example.com/&#39;);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
curl_exec($ch);
if (!curl_errno($ch)) {
    print_r(curl_getinfo($ch));
}
curl_close($ch);
?>

After setting the CURLINFO_HEADER_OUT option, the array returned by the curl_getinfo function will contain the header information of the cURL request. To see the response header information, you can set the CURLOPT_HEADER option to true in curl_setopt.

curl_exec When the function is executed successfully, the response body information will be processed according to the value of the CURLOPT_RETURNTRANSFER option: if it is true, it will be returned as a string, if it is false, it will be directly output. The result is FALSE if execution fails. That is to say, if the execution fails (assuming it is a 400 error), the response text (which may contain more specific error information) cannot be seen from the result of the curl_exec function. There are two ways to see the response text. The first method is to set 400 as the success code. The example is as follows:

curl_setopt($ch, CURLOPT_FAILONERROR, false);
curl_setopt($ch, CURLOPT_HTTP200ALIASES, array(400));

The second method is to set CURLOPT_VERBOSE to true and CURLOPT_STDERR is set to a file opened with fopen. In this way cURL will record all interaction information with the server into this file.

Related learning recommendations:
php programming

(video)

The above is the detailed content of How to debug curl error messages in php. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn