2012-10-22 42 views
5

Tôi cần thực hiện yêu cầu curl, tôi có dòng này "curl -X POST -H 'Content-Type: application/json' -d "và cần" dịch "sang PHP curl. Vấn đề là tôi không biết ý nghĩa "-X", "-H" và "-d" là gì.curl -X POST -H 'Content-Type: application/json' -d tới PHP

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
     'Accept: application/json', 
     'Content-Type: application/json', 
     'Content-Length: '. strlen($itemJson)) 
    ); 

tôi đã cố gắng một cái gì đó như thế trên tiêu đề ($itemJson là một chuỗi JSON) nhưng tôi đã nhận lỗi 400.

Tôi nghĩ rằng tôi đang làm theo yêu cầu trong một cách sai lầm. Ai có thể giúp tôi?

+2

-X nghĩa là loại phương pháp. -H có nghĩa là tiêu đề, và -d có nghĩa là dữ liệu tat sẽ được gửi cùng với yêu cầu. – Layke

+0

Cảm ơn! Tôi nghĩ rằng yêu cầu là đúng, tôi sẽ kiểm tra dữ liệu. – fred00

+0

Để chuyển đổi lệnh Curl sang PHP https://incarnate.github.io/curl-to-php/ – Sonu

Trả lời

8

Bạn có thể thử như sau

$data = array("name" => "Hagrid", "age" => "36");                  
$data_string = json_encode($data);                     

$ch = curl_init('http://somedomain.com/test.php');                  
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                  
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);                 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                  
curl_setopt($ch, CURLOPT_HTTPHEADER, array(                   
    'Content-Type: application/json',                     
    'Content-Length: ' . strlen($data_string))                  
);                             

$result = curl_exec($ch); 
+0

Không ... Tôi lại gặp lỗi 400. – fred00

+0

bạn có thể dán mã được cập nhật của mình không? – GBD

+0

Cảm ơn bạn! .. Đó là nó, tôi đã gửi POST đến một địa chỉ cũ. – fred00

Các vấn đề liên quan