Chuyển đổi lệnh curl thành mã PHP - Tạo mã PHP cURL sẵn sàng sử dụng cho các yêu cầu API
"https://api.example.com/data", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => json_encode(["name" => "test"]), CURLOPT_HTTPHEADER => [ "Content-Type: application/json" ], ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; }
Dưới đây là một số lệnh curl phổ biến mà bạn có thể chuyển đổi thành mã PHP:
curl https://api.example.com/users
curl -X POST -H "Content-Type: application/json" -d '{"name":"John","email":"[email protected]"}' https://api.example.com/users
curl -X PUT -H "Authorization: Bearer token123" -d '{"status":"active"}' https://api.example.com/users/1
curl -X DELETE https://api.example.com/users/1
curl -H "X-API-Key: abc123" -H "Accept: application/json" https://api.example.com/data
Extension cURL của PHP cung cấp một cách mạnh mẽ để thực hiện các yêu cầu HTTP. Dưới đây là một số mẫu PHP cURL phổ biến:
"https://api.example.com/upload", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => [ 'file' => $cfile ], CURLOPT_HTTPHEADER => [ "Authorization: Bearer YOUR_TOKEN_HERE" ], ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; }
"https://api.example.com/data", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 5, // 5 seconds timeout CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", ]); $response = curl_exec($curl); $err = curl_error($curl); $httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE); curl_close($curl); if ($err) { echo "cURL Error: " . $err; } else { if ($httpCode >= 400) { echo "HTTP Error: " . $httpCode . "\n"; echo "Response: " . $response; } else { $data = json_decode($response, true); if (json_last_error() === JSON_ERROR_NONE) { // Process JSON data print_r($data); } else { echo "JSON parsing error: " . json_last_error_msg(); echo "Raw response: " . $response; } } }
Sao chép lệnh curl của bạn → Dán vào hộp nhập liệu → Nhận mã PHP cURL đã chuyển đổi
true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_HTTPHEADER => [ "Authorization: Bearer YOUR_TOKEN_HERE", "Content-Type: application/json", "Accept: application/json" ], ]; // First request curl_setopt_array($curl, $options + [ CURLOPT_URL => "https://api.example.com/users", CURLOPT_CUSTOMREQUEST => "GET", ]); $response1 = curl_exec($curl); $err1 = curl_error($curl); // Second request with the same session curl_setopt_array($curl, $options + [ CURLOPT_URL => "https://api.example.com/products", CURLOPT_CUSTOMREQUEST => "GET", ]); $response2 = curl_exec($curl); $err2 = curl_error($curl); curl_close($curl); // Process responses $users = json_decode($response1, true); $products = json_decode($response2, true);
Công cụ của chúng tôi xử lý các tùy chọn curl phổ biến này và chuyển đổi chúng thành mã PHP cURL thích hợp:
Đ: Mã PHP cURL được tạo tương thích với PHP 5.5 trở lên. Đối với các phiên bản PHP cũ hơn, có thể cần điều chỉnh nhỏ, đặc biệt là đối với lớp CURLFile được sử dụng trong tải lên tệp.
Đ: Có, mã được tạo bao gồm xử lý lỗi cơ bản cho các lỗi cURL. Đối với mã sản xuất, bạn có thể muốn thêm xử lý lỗi toàn diện hơn phù hợp với nhu cầu ứng dụng của bạn.
Đ: Đối với phản hồi JSON, sử dụng json_decode() để phân tích phản hồi thành một mảng hoặc đối tượng PHP. Đối với các định dạng khác, bạn có thể xử lý chuỗi phản hồi thô theo nhu cầu.
Đ: Có, bạn cần extension cURL được bật trong cài đặt PHP của bạn. Hầu hết các cài đặt PHP hiện đại đều có cURL được bật mặc định. Bạn có thể kiểm tra bằng php -m | grep curl
trong terminal của bạn.
Đ: Đối với tải lên tệp trong PHP, bạn cần sử dụng lớp CURLFile. Bộ chuyển đổi của chúng tôi xử lý các lệnh curl với tùy chọn -F
hoặc --form
và tạo mã PHP thích hợp sử dụng CURLFile.
Đ: Extension cURL của PHP cung cấp các tùy chọn để xử lý cookie. Khi bạn chuyển đổi các lệnh curl bao gồm xử lý cookie (sử dụng -b
hoặc --cookie
), công cụ của chúng tôi tạo mã PHP quản lý cookie đúng cách bằng cách sử dụng các tùy chọn CURLOPT_COOKIE hoặc CURLOPT_COOKIEFILE/CURLOPT_COOKIEJAR.
Đ: Trong khi curl dòng lệnh rất tốt cho kiểm thử API nhanh, PHP cURL cho phép bạn tích hợp các yêu cầu HTTP trực tiếp vào ứng dụng PHP của bạn. Chuyển đổi curl sang PHP giúp bắc cầu khoảng cách giữa kiểm thử và triển khai trong phát triển PHP.
Hiểu các lệnh curl là điều cần thiết cho kiểm thử API hiệu quả với PHP. Dưới đây là tham khảo nhanh về các tùy chọn curl phổ biến mà bộ chuyển đổi của chúng tôi hỗ trợ:
curl [options] [URL]
-X, --request METHOD
: Specify request method (GET, POST, PUT, DELETE, etc.)-H, --header LINE
: Add header to the request-d, --data DATA
: Send data in POST request-F, --form CONTENT
: Submit form data-u, --user USER:PASSWORD
: Server user and password-k, --insecure
: Allow insecure server connections-I, --head
: Show document info only-v, --verbose
: Make the operation more verbose-s, --silent
: Silent mode--connect-timeout SECONDS
: Maximum time for connectionBộ chuyển đổi PHP của chúng tôi xử lý các lệnh curl phức tạp bao gồm nhiều header, xác thực, tải trọng dữ liệu và các tùy chọn khác nhau. Chỉ cần dán lệnh curl của bạn và nhận mã PHP sạch, hiện đại sử dụng extension cURL.
Khi làm việc với PHP cURL, hãy tuân theo các thực hành tốt nhất sau đây để tương tác API hiệu quả và an toàn:
2. Sử Dụng curl_setopt_array cho Nhiều Tùy Chọn
"https://api.example.com/data", CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 30, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => [ "Authorization: Bearer token123", "Accept: application/json" ], ]); $response = curl_exec($curl); curl_close($curl);3. Triển Khai Xử Lý Lỗi Toàn Diện
"https://api.example.com/data", CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 30, CURLOPT_CUSTOMREQUEST => "GET", ]); $response = curl_exec($curl); $errno = curl_errno($curl); $httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE); curl_close($curl); if ($errno) { // Handle cURL errors switch ($errno) { case CURLE_OPERATION_TIMEDOUT: echo "Request timed out"; break; case CURLE_COULDNT_CONNECT: echo "Could not connect to server"; break; default: echo "cURL error ({$errno}): " . curl_strerror($errno); } } else if ($httpCode >= 400) { // Handle HTTP errors echo "HTTP error: {$httpCode}"; } else { // Process successful response $data = json_decode($response, true); // Continue processing... }