Intereting Posts
Почему «PHP не удается сломать / продолжить 1 уровень»? WP отправляет почтовое уведомление новому пользователю, созданному программно Как заменить текст на несколько строк, используя preg_replace Синтаксис PHP. Булевы операторы, тернарный оператор и JavaScript PHP печатает имена полей SQL как массив с соответствующими значениями, отображаемыми один раз в строке Рейтинг модуля K2_content Медленное дешифрование AES в Android Отправить почту из необработанного тела для целей тестирования В PHP при отправке строк в базу данных следует позаботиться о незаконных символах с помощью htmlspecialchars () или использовать регулярное выражение? Как проверить, существует ли URL через Laravel? Symfony и Doctrine – не могут удалить элемент из коллекции (отношение Many-to-Many с дополнительным полем) PHP Strip_tags для div с определенным идентификатором? Поиск файлов в каталоге с использованием php Apache блокирует запрос, если URL-адрес представлен как входной параметр Как отображать преобразованные часовые пояса в «общую неделю» (с воскресенья по субботу)?

Отправить запрос на отправку XML на веб-сервер с CURL

Я пытаюсь отправить запрос на веб-сервер, используя 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 .