Php curl lấy mã http
Tôi đã cố gắng sử dụng cURL trong PHP, nhưng bằng cách nào đó, mã HTTP trả về 0 thay vì bất kỳ mã phản hồi hợp lệ nào, chẳng hạn như 200, 500 hoặc 403 Show
Đây là mã tôi đang sử dụng $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $this->api . '/login'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Referer: ' . $this->api ]); $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); $r = curl_exec($ch); curl_close($ch); if ($httpcode != 200) { throw new Exception('API returned HTTP code of ' . $httpcode); } Một số bạn có thể nhận thấy, lỗi nằm ở dòng 11 – $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $this->api . '/login'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Referer: ' . $this->api ]); $r = curl_exec($ch); $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if ($httpcode != 200) { throw new Exception('API returned HTTP code of ' . $httpcode); }5 Dòng đó sẽ được gọi sau khi thực hiện cURL Dung dịchGiải pháp khá rõ ràng. Tôi cần gọi cho $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $this->api . '/login'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Referer: ' . $this->api ]); $r = curl_exec($ch); $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if ($httpcode != 200) { throw new Exception('API returned HTTP code of ' . $httpcode); }6 sau $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $this->api . '/login'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Referer: ' . $this->api ]); $r = curl_exec($ch); $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if ($httpcode != 200) { throw new Exception('API returned HTTP code of ' . $httpcode); }7 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $this->api . '/login'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Referer: ' . $this->api ]); $r = curl_exec($ch); $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if ($httpcode != 200) { throw new Exception('API returned HTTP code of ' . $httpcode); } Vấn đề được giải quyết $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $this->api . '/login'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Referer: ' . $this->api ]); $r = curl_exec($ch); $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if ($httpcode != 200) { throw new Exception('API returned HTTP code of ' . $httpcode); }8 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $this->api . '/login'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Referer: ' . $this->api ]); $r = curl_exec($ch); $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if ($httpcode != 200) { throw new Exception('API returned HTTP code of ' . $httpcode); }9 0 1 2 3 4 5 6 7 8 901 TLS の Secure Remote Password (SRP) 認証は、 ローカルとリモートの双方が共通のシークレットを持っている場合に、 お互いを認証する方法を提供します。 TLS-SRP を使うためには、 25 と 23 オプションも設定する必要があります。PHP cURL là thư viện cho phép máy khách truy cập máy chủ từ xa thông qua URL. Nó gửi các yêu cầu HTTP đến điểm cuối từ một ứng dụng hoặc thành phần khác Nó cho phép các lượt truy cập liên ứng dụng nhận được phản hồi qua mạng. Cơ chế này rất hữu ích để làm việc với các dịch vụ PHP RESTful, tương tác API, v.v. Có nhiều trường hợp sử dụng trong đó bài đăng cURL PHP hoàn toàn phù hợp. Ví dụ,
Ví dụ nhanh này cung cấp mã đơn giản để triển khai bài đăng cURL PHP ví dụ nhanh
Ngoài ra, chúng ta sẽ xem thêm các ví dụ về trường hợp sử dụng của PHP cURL post request trong các phần sắp tới Phần 1 – Khái niệm cơ bản về PHP cURLSau đây là các bước để thực hiện chu trình phản hồi yêu cầu cURL cơ bản của PHP
Làm cách nào để định cấu hình PHP cURL?PHP chứa thư viện libcurl để tạo môi trường làm việc với cURL. Thư viện này sẽ được bật theo mặc định Nếu không, hãy thực hiện các bước sau để bật mô-đun cURL PHP trong môi trường của bạn
Đặt yêu cầu POST cURL PHP – Phương pháp thay thếCó nhiều cách để gửi thông số bài viết PHP cURL
định dạng JSON Chuỗi truy vấn HTTP PHP cURL POST định dạng mảng 0 có thể có một mảng PHP để truyền tham số cho điểm cuối
Đặt tùy chọn tiêu đề cURLĐể đặt tiêu đề PHP cURL, hằng số CURLOPT_HTTPHEADER được sử dụng. Tiêu đề cURL có thể có thêm thông tin. Các khóa sau đây là một số ví dụ để thêm các tùy chọn tiêu đề PHP cURL
Chương trình này đặt các tùy chọn tiêu đề cURL để đặt loại nội dung. Cũng có các tùy chọn để gửi tiêu đề tùy chỉnh. Đó là gửi các cặp khóa-giá trị không chuẩn. Sử dụng tiền tố X- để gửi các tiêu đề không chuẩn. Ví dụ, ________số 8Hằng số CURLOPT_HEADER được đặt với giá trị boolean true. Đó là để cho phép thông tin tiêu đề được đính kèm với phản hồi trả về 1 và 0 sẽ gửi các giá trị qua bài đăng PHP cURL$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $this->api . '/login'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Referer: ' . $this->api ]); $r = curl_exec($ch); $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if ($httpcode != 200) { throw new Exception('API returned HTTP code of ' . $httpcode); }2 PHP cURL POST để tải tệp lênCũng có thể tải tệp lên máy chủ thông qua bài đăng PHP cURL. Đoạn mã dưới đây cho biết cách tải tệp hình ảnh lên máy chủ Nó chuẩn bị đối tượng với dữ liệu tệp. Nó sử dụng hàm PHP curl_file_create() để chuẩn bị nội dung bài đăng tệp Bằng cách gửi gói ‘fileParam’ theo cách này, mã điểm cuối có thể truy cập nó qua mảng $_FILES[] $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $this->api . '/login'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Referer: ' . $this->api ]); $r = curl_exec($ch); $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if ($httpcode != 200) { throw new Exception('API returned HTTP code of ' . $httpcode); }3 Đặt mã điểm cuối sau vào máy chủ. Sau đó nhấn điểm cuối thông qua tập lệnh cURL ở trên. Yêu cầu bài đăng cuộn tròn PHP gửi đầu vào tệp đến điểm cuối này. Mã PHP này truy cập tệp đã tải lên từ mảng $_FILES php-curl-post-file-endpoint. php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $this->api . '/login'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Referer: ' . $this->api ]); $r = curl_exec($ch); $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if ($httpcode != 200) { throw new Exception('API returned HTTP code of ' . $httpcode); }2 Yêu cầu HTTP GET để lấy một trang webTrong yêu cầu cURL, phương thức mặc định là GET. Chương trình này gọi máy chủ qua cURL với phương thức yêu cầu GET mặc định Không giống như PHP cURL POST, nó gửi dữ liệu dưới dạng chuỗi truy vấn. Để truyền tham số cho yêu cầu GET, nó phải được xây dựng như một phần của URL Nó lấy HTML của trang web được chỉ định làm điểm cuối cURL. Nó in phản hồi và hiển thị HTML của trang web mục tiêu trong trình duyệt Làm cách nào để lấy mã HTTP từ cURL trong php?php $ch = curl_init($url);
Làm cách nào để nhận mã phản hồi HTTP trong php?Dành cho phiên bản PHP 4. 0. Để gửi mã phản hồi HTTP, chúng tôi cần tập hợp mã phản hồi. Để đạt được điều này, hãy sử dụng hàm header() . Hàm header() chứa trường hợp sử dụng đặc biệt có thể phát hiện dòng phản hồi HTTP và thay thế bằng dòng tùy chỉnh. tiêu đề ("HTTP/1. 1 404 Không tìm thấy" );
Làm cách nào để nhận mã trạng thái HTTP từ phản hồi cURL?$ (curl --silent http. //www. ví dụ. org -o >(cat >&1) -w "%{http_code}" 1>&2) 1>/dev/null 200 $ (curl --silent http. //www. ví dụ. org -o >(cat >&1) -w "%{http_code}" 1>&2) 2>/dev/null
Làm cách nào để lấy mã trạng thái từ phản hồi cURL trong php?Làm cách nào để có được trạng thái mã cURL trong PHP? . $info = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); nếu ($thông tin == 200){ trả về json_decode($result); |