2013-03-28 30 views
14

Tôi đang cố gắng gửi yêu cầu tới máy chủ web bằng cách sử dụng php và curl. Tôi đã không làm điều gì đó như thế này trước đây và mặc dù có rất nhiều ví dụ tốt đẹp trực tuyến nhưng tôi gặp một số khó khăn trong việc hiểu một số lệnh curl.Gửi yêu cầu đăng XML đến máy chủ web với CURL

Đây là những gì tôi muốn làm: Có một dịch vụ web đã được thiết lập (ví dụ: dịch vụ bản đồ web) và tôi muốn mã php của tôi gửi yêu cầu XML tới dịch vụ này. Như một phản ứng tôi muốn nhận được một tập tin XML.

Đây là những gì tôi có cho đến bây giờ:

$ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, ''); 
    /*curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));*/ 
    /* curl_setopt($ch, CURLOPT_HEADER, 0);*/ 
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $xml); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0); 
    /*curl_setopt($ch, CURLOPT_REFERER, '');*/ 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    $ch_result = curl_exec($ch); 
    curl_close($ch); 
    echo $ch_result; 

Như tôi đã nói tôi khá mới trong php và cũng trong việc sử dụng curl và tôi nghĩ rằng tôi đang thiếu một số khái niệm. Câu hỏi của tôi là:

  curl_setopt($ch, CURLOPT_URL, ''); 

Đó có phải là tên máy chủ của dịch vụ mà tôi muốn gửi yêu cầu: 1) chuỗi (liên kết) mà tôi có phải đặt trong là gì?

2) Trong hàng 6 biến $ xml chứa tệp xml mà tôi muốn gửi làm yêu cầu. Có đúng hay biến này được cho là chứa cái gì khác?

3) Trong trường hợp nào tôi cần sử dụng người gửi thư hoặc đầu trang (hàng 3 và hàng4);

Cảm ơn sự giúp đỡ. Dimitris

Trả lời

28

Hãy thử nó theo cách này:

$url = 'https://android.googleapis.com/gcm/send'; 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_POST, true); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml')); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, "<xml>here</xml>"); 
    $result = curl_exec($ch); 
    curl_close($ch); 

Để biết thêm chi tiết chuyến thăm: http://php.net/manual/en/function.curl-setopt.php

+0

Vì vậy, bên trong thẻ tôi đặt tất cả các chuỗi xml? – user1919

+1

Nếu toàn bộ xml của bạn là $ xml, dòng đó phải là: curl_setopt ($ ch, CURLOPT_POSTFIELDS, $ xml); – PKeidel

+0

Một điều khác mà tôi chưa hiểu rõ ràng là biến $ url chứa cái gì. Là tên máy chủ của máy chủ mà tôi sẽ gửi yêu cầu? – user1919

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