Я пытаюсь отправить запрос на веб-сервер, используя php и 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);
Спасибо за помощь. Димитрис
Попробуйте это так:
$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
Я думаю, что использование 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 .