Hướng dẫn php post to url and get response - php đăng lên url và nhận phản hồi

Sử dụng php curl, bạn có thể đạt được điều này như sau

$url = "http://google.com/";

$aParameter = array('id'=>1,'name'=>'test'); //parameters to be sent

$params = json_encode($aParameter); //convert param to json string

//headers to be sent optional if no header required skip this and remove curlopt_httpheader thing from curl call
$aHeaders = array(
        'Client-Secret'=>'XXXXX',
        'Authorization'=>'xxxxxx',
        'Content-Type'=>'Content-Type:application/json',
        'accept'=>'accept:application/json'
    );


$c = curl_init();

curl_setopt($c, CURLOPT_USERAGENT,  'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:11.0) Gecko/20100101 Firefox/11.0'); // empty user agents probably not accepted
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($c, CURLOPT_AUTOREFERER,    1);
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, 0);

curl_setopt($c, CURLOPT_HTTPHEADER, $aHeaders);

curl_setopt($c, CURLOPT_URL, $url );
curl_setopt($c, CURLOPT_REFERER, $url);
curl_setopt($c, CURLOPT_POST, true);
curl_setopt($c,CURLOPT_POSTFIELDS,$params);
$sResponse[$key] = curl_exec($c);

Trong bài viết này, chúng ta sẽ biết HTTP nhận được gì và đăng các phương thức trong PHP, cách thực hiện các phương thức HTTP này và cách sử dụng của chúng, bằng cách hiểu chúng thông qua các ví dụ.

HTTP: Giao thức chuyển siêu văn bản (HTTP) được thiết kế để cho phép liên lạc giữa máy khách và máy chủ. HTTP hoạt động như một giao thức phản hồi yêu cầu giữa máy khách và máy chủ. Trình duyệt web có thể là máy khách và một ứng dụng trên máy tính lưu trữ trang web có thể là máy chủ. Một máy khách (trình duyệt) gửi yêu cầu HTTP tới máy chủ; Sau đó, máy chủ trả về một phản hồi cho máy khách. Phản hồi chứa thông tin trạng thái về yêu cầu và cũng có thể chứa nội dung được yêu cầu.The Hypertext Transfer Protocol (HTTP) is designed to enable communications between clients and servers. HTTP works as a request-response protocol between a client and server. A web browser may be the client, and an application on a computer that hosts a website may be the server. A client (browser) submits an HTTP request to the server; then the server returns a response to the client. The response contains status information about the request and may also contain the requested content.

Có 2 phương thức yêu cầu HTTP:

  • Nhận: Yêu cầu dữ liệu từ một tài nguyên được chỉ định. Requests data from a specified resource.
  • Bài đăng: Đệ trình dữ liệu sẽ được xử lý đến một tài nguyên được chỉ định. Submits data to be processed to a specified resource.

Chúng tôi sẽ hiểu cả hai phương pháp này một cách chi tiết thông qua các ví dụ.

Phương thức nhận: Trong phương thức GET, dữ liệu được gửi dưới dạng các tham số URL thường là các chuỗi có tên và các cặp giá trị được phân tách bởi ampersands (&). Nói chung, một URL có dữ liệu GET sẽ trông như thế này:In the GET method, the data is sent as URL parameters that are usually strings of name and value pairs separated by ampersands (&). In general, a URL with GET data will look like this:

Ví dụ: Xem xét ví dụ dưới đây:: Consider the below example:

http://www.example.com/action.php?name=Sam&weight=55 

Ở đây, các phần in đậm trong URL biểu thị các tham số GET và các phần in nghiêng biểu thị giá trị của các tham số đó. Nhiều hơn một tham số = giá trị có thể được nhúng trong URL bằng cách nối với ampersands (&). Người ta chỉ có thể gửi dữ liệu văn bản đơn giản thông qua phương thức Get.

Ví dụ: Ví dụ này minh họa phương thức HTTP GET trong PHP. This example illustrates the HTTP GET method in PHP.

HTML

php

  error_reporting(0);

  if( $_GET["name"] || $_GET["weight"] )

  

http://www.example.com/action.php?name=Sam&weight=55 
0

http://www.example.com/action.php?name=Sam&weight=55 
1
http://www.example.com/action.php?name=Sam&weight=55 
2

http://www.example.com/action.php?name=Sam&weight=55 
1
http://www.example.com/action.php?name=Sam&weight=55 
4

http://www.example.com/action.php?name=Sam&weight=55 
1
http://www.example.com/action.php?name=Sam&weight=55 
6

  

http://www.example.com/action.php?name=Sam&weight=55 
8

http://www.example.com/action.php?name=Sam&weight=55 
9

POST /test/demo_form.php HTTP/1.1 
Host: gfs.com 
SAM=451&MAT=62 
0
POST /test/demo_form.php HTTP/1.1 
Host: gfs.com 
SAM=451&MAT=62 
1
POST /test/demo_form.php HTTP/1.1 
Host: gfs.com 
SAM=451&MAT=62 
2

POST /test/demo_form.php HTTP/1.1 
Host: gfs.com 
SAM=451&MAT=62 
0
POST /test/demo_form.php HTTP/1.1 
Host: gfs.com 
SAM=451&MAT=62 
4
POST /test/demo_form.php HTTP/1.1 
Host: gfs.com 
SAM=451&MAT=62 
2

  

POST /test/demo_form.php HTTP/1.1 
Host: gfs.com 
SAM=451&MAT=62 
0
POST /test/demo_form.php HTTP/1.1 
Host: gfs.com 
SAM=451&MAT=62 
8
POST /test/demo_form.php HTTP/1.1 
Host: gfs.com 
SAM=451&MAT=62 
9

012 345 64__

0php12 345 6__

  0

POST /test/demo_form.php HTTP/1.1 
Host: gfs.com 
SAM=451&MAT=62 
02 34  5 9

    8

POST /test/demo_form.php HTTP/1.1 
Host: gfs.com 
SAM=451&MAT=62 
8
POST /test/demo_form.php HTTP/1.1 
Host: gfs.com 
SAM=451&MAT=62 
2

  8

POST /test/demo_form.php HTTP/1.1 
Host: gfs.com 
SAM=451&MAT=62 
4
POST /test/demo_form.php HTTP/1.1 
Host: gfs.com 
SAM=451&MAT=62 
2

  8

POST /test/demo_form.php HTTP/1.1 
Host: gfs.com 
SAM=451&MAT=62 
1
POST /test/demo_form.php HTTP/1.1 
Host: gfs.com 
SAM=451&MAT=62 
2

Output:

Hướng dẫn php post to url and get response - php đăng lên url và nhận phản hồi

GET () Phương thức

Advantages:

  • Do dữ liệu được gửi bởi phương thức GET được hiển thị trong URL, nên có thể đánh dấu trang với các giá trị chuỗi truy vấn cụ thể.
  • Nhận yêu cầu có thể được lưu trữ và nhận được yêu cầu ở lại trong lịch sử trình duyệt.
  • Nhận yêu cầu có thể được đánh dấu.

Disadvantages:

  • Phương thức GET không phù hợp để truyền thông tin nhạy cảm như tên người dùng và mật khẩu, bởi vì chúng có thể nhìn thấy đầy đủ trong chuỗi truy vấn URL cũng như có khả năng lưu trữ trong bộ nhớ của Trình duyệt máy khách dưới dạng trang được truy cập.
  • Vì phương thức GET gán dữ liệu cho biến môi trường máy chủ, độ dài của URL bị hạn chế. Vì vậy, có một giới hạn cho tổng dữ liệu được gửi.

Phương thức POST: Trong phương thức POST, dữ liệu được gửi đến máy chủ dưới dạng gói trong một giao tiếp riêng với tập lệnh xử lý. Dữ liệu được gửi qua phương thức POST sẽ không hiển thị trong URL. & NBSP;In the POST method, the data is sent to the server as a package in a separate communication with the processing script. Data sent through the POST method will not be visible in the URL. 

Ví dụ: Xem xét ví dụ dưới đây:Consider the below example:

POST /test/demo_form.php HTTP/1.1 
Host: gfs.com 
SAM=451&MAT=62 

Ở đây, các phần in đậm trong URL biểu thị các tham số GET và các phần in nghiêng biểu thị giá trị của các tham số đó. Nhiều hơn một tham số = giá trị có thể được nhúng trong URL bằng cách nối với ampersands (&). Người ta chỉ có thể gửi dữ liệu văn bản đơn giản thông qua phương thức Get.

Ví dụ: Ví dụ này minh họa phương thức HTTP GET trong PHP.This example illustrates the HTTP POST method in PHP. Here, we have used the preg_match() function to search string for a pattern, returns true if a pattern exists, otherwise returns false.

HTML

php

error_reporting(0);9error_reporting(0);

error_reporting(0);9  2

http://www.example.com/action.php?name=Sam&weight=55 
1
http://www.example.com/action.php?name=Sam&weight=55 
0

  5  6

  7

http://www.example.com/action.php?name=Sam&weight=55 
0

  0if( $_GET["name"] || $_GET["weight"] )0

  5

http://www.example.com/action.php?name=Sam&weight=55 
8

http://www.example.com/action.php?name=Sam&weight=55 
1if( $_GET["name"] || $_GET["weight"] )4

http://www.example.com/action.php?name=Sam&weight=55 
1if( $_GET["name"] || $_GET["weight"] )6

  

POST /test/demo_form.php HTTP/1.1 
Host: gfs.com 
SAM=451&MAT=62 
0
POST /test/demo_form.php HTTP/1.1 
Host: gfs.com 
SAM=451&MAT=62 
8
POST /test/demo_form.php HTTP/1.1 
Host: gfs.com 
SAM=451&MAT=62 
9

  7

http://www.example.com/action.php?name=Sam&weight=55 
8

http://www.example.com/action.php?name=Sam&weight=55 
9

POST /test/demo_form.php HTTP/1.1 
Host: gfs.com 
SAM=451&MAT=62 
0
POST /test/demo_form.php HTTP/1.1 
Host: gfs.com 
SAM=451&MAT=62 
1
POST /test/demo_form.php HTTP/1.1 
Host: gfs.com 
SAM=451&MAT=62 
2

POST /test/demo_form.php HTTP/1.1 
Host: gfs.com 
SAM=451&MAT=62 
0
POST /test/demo_form.php HTTP/1.1 
Host: gfs.com 
SAM=451&MAT=62 
4  7

012 345 64__

0php12 345 6__

  0

POST /test/demo_form.php HTTP/1.1 
Host: gfs.com 
SAM=451&MAT=62 
02 34  5 9

GET () Phương thức

    8

POST /test/demo_form.php HTTP/1.1 
Host: gfs.com 
SAM=451&MAT=62 
8
POST /test/demo_form.php HTTP/1.1 
Host: gfs.com 
SAM=451&MAT=62 
2

  8

POST /test/demo_form.php HTTP/1.1 
Host: gfs.com 
SAM=451&MAT=62 
4
POST /test/demo_form.php HTTP/1.1 
Host: gfs.com 
SAM=451&MAT=62 
2

  8

POST /test/demo_form.php HTTP/1.1 
Host: gfs.com 
SAM=451&MAT=62 
1
POST /test/demo_form.php HTTP/1.1 
Host: gfs.com 
SAM=451&MAT=62 
2

Output:

Hướng dẫn php post to url and get response - php đăng lên url và nhận phản hồi

Phương thức Post ()

Advantages:

  • Nó an toàn hơn GET vì thông tin nhập vào người dùng không bao giờ hiển thị trong chuỗi truy vấn URL hoặc trong nhật ký máy chủ.
  • Có một giới hạn lớn hơn nhiều về lượng dữ liệu có thể được truyền và người ta có thể gửi dữ liệu văn bản cũng như dữ liệu nhị phân (tải lên tệp) bằng POST.

Disadvantages:

  • Vì dữ liệu được gửi bởi phương thức POST không hiển thị trong URL, nên không thể đánh dấu trang với một truy vấn cụ thể.
  • Yêu cầu bài đăng không bao giờ được lưu trữ
  • Các yêu cầu bài không vẫn còn trong lịch sử trình duyệt.

Vui lòng tham khảo sự khác biệt giữa bài viết về phương thức HTTP GET và POST cho sự khác biệt giữa chúng một cách chi tiết.