Отправить запрос на отправку XML на веб-сервер с CURL
Я пытаюсь отправить запрос на веб-сервер, используя php и curl.
Я раньше не делал этого, и, хотя в Интернете есть много хороших примеров, у меня есть некоторые трудности с пониманием некоторых команд curl.
Это то, что я хочу сделать: существует установленная веб-служба (например, служба веб-карты), и я хочу, чтобы мой PHP-код отправил почтовый XML-запрос этой службе. В ответ я хочу получить XML файл.
Это то, что у меня есть до сих пор:
$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;
Как я уже сказал, я довольно новичок в php, а также в использовании curl, и я думаю, что мне не хватает некоторых концепций.
Мои вопросы:
1) Какая строка (ссылка), которую я должен положить в:
curl_setopt($ch, CURLOPT_URL, '');
Это имя хоста, которое я хочу отправить запросу?
2) В строке 6 переменная $xml содержит файл xml, который я хочу отправить в качестве запроса. Правильно ли это, или эта переменная должна содержать что-то еще?
3) В каких случаях мне нужно использовать httpheader или header (row3 и row4),
Спасибо за помощь.
Димитрис
Ответы
Ответ 1
Попробуйте так:
$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);
Подробнее см. http://php.net/manual/en/function.curl-setopt.php
Ответ 2
Я думаю, что использование HTTP-классов может быть лучше подходит для создания HTTP-запросов.
См. http://www.php.net/manual/intro.http.php.
Кроме того, существуют определенные библиотеки WMS для PHP, например. http://docs.huihoo.com/geoserver/1.6.0/Parsing%20and%20using%20WMS%20capabilities%20with%20PHP.html.