Генератор XML-запросов к серверу, сохранить response -?

Palladium

Guest
Генератор XML-запросов к серверу, сохранить response -?

Всем привет,
в поиске был, ответа на вопрос не нашел.
Ситуация такая:
Параметры соединения с сервером(method=POST):

MfcISAPICommand="Default"
XML=xml код
USERNAME=логин
PASSWORD=пароль

Шаблон запроса:

<?xml version="1.0" standalone="yes"?>
<CatalogRequest xmlns="urn:XMLLink:eLinkCatalog">
<CatNumber>1.0</CatNumber>
<Route><From><ClientID>XXX</ClientID></From>
<To><ClientID>0</ClientID></To>
</Route>
<Filters>
<Filter FilterID="VendorID" Value="HWP"/>
<Filter FilterID="Price" Value="WOVAT"/>
</Filters>
</CatalogRequest>

Есть массив значений VendorID, которые нужно подставлять поочередно и результат каждого запроса сохранять в базу MySQL. Нужен пример скрипта, который бы это делал

Разбирался с запросами(статья на этом портале), с парсингом и многими другими страшными словами, но рабочего примера(хотя бы похожего) найти не удалось.
Если кто может помочь(хотя бы в какую сторону копать) - буду очень благодарен.
Спасибо за внимание.
 

fixxxer

К.О.
Партнер клуба
Проблемы решаются поэтапно.
Сначала формируешь запрос, потом соединяешься с сервером, отправляешь запрос, получаешь ответ, парсишь ответ, пишешь результат в базу.
На каком именно этапе у тебя возникают проблемы?
 

Domovoj

Guest
Для отсылки запроса и получения ответа - см. fsockopen() (в соседнем топике ещё рекомендовали curl).

Дла парсинга ответа может помочь SimpleXML в PHP5
 

Palladium

Guest
fixxxer
Пока что заступорился на первом этапе:
На http://lt.php.net/xml есть пример "отправка xml на сервер" - с использованием cURL, но меня сбивают с толку параметры соединения -
MfcISAPICommand="Default"
XML=xml код
USERNAME=логин
PASSWORD=пароль

- их в Header?
 

Domovoj

Guest
Автор оригинала: Palladium
fixxxer
Пока что заступорился на первом этапе:
На http://lt.php.net/xml есть пример "отправка xml на сервер" - с использованием cURL, но меня сбивают с толку параметры соединения -
MfcISAPICommand="Default"
XML=xml код
USERNAME=логин
PASSWORD=пароль

- их в Header?
А где ты прочитал об этом? Я так понимаю там и должно быть описано, что это должно быть - содержимое POST, http headers или HTTP FORM variables.
 

Palladium

Guest
Domovoj
HTTP FORM variables
- в документации приведен пример html-формы, руками запросы отправлять и результаты сохранять утомительно
 

Domovoj

Guest
Автор оригинала: Palladium
Domovoj
HTTP FORM variables
- в документации приведен пример html-формы, руками запросы отправлять и результаты сохранять утомительно
В таком случае тебе просто надо сымитировать отсылку формы на сервер и отловить ответ. Как отсылать форму - зависит от того GET она, или POST. Если GET (вряд ли), то просто делай http запрос указывая эти переменные в URL. Если POST, то отсылай эти поля в теле POST данных запроса.
 

fixxxer

К.О.
Партнер клуба
Сказано же - POST.

Palladium

1. Читаем RFC 2616, также поможет эта статья.
2. Формировать XML-запрос несложно ручками.
3. Читаем мануал по [m]fsockopen[/m], [m]fwrite[/m], [m]fread[/m]. Еще пригодится [m]urlencode[/m]. Делаем обмен данными
4. парсить ответ - [m]SimpleXML[/m] в PHP5, в PHP4 - если размер ответа небольшой - проще всего будет [m]xml_parse_into_struct[/m].
 

Alexandre

PHPПенсионер
Шаблон запроса:
<?xml version="1.0" standalone="yes"?>
<CatalogRequest xmlns="urn:XMLLink:eLinkCatalog">
...
1) как правило, такие запросы идут POST
2) формировать xml можно как ручками, так и используя DOM
ручками на первом этапе - проще
3) используй CURL примеры есть в мане.
4) см
fixxxer :
4. парсить ответ - SimpleXML в PHP5, в PHP4 - если размер ответа небольшой - проще всего будет xml_parse_into_struct
нет ничего сложного, налдо только разобраться

если - курл не поддерживает текущая конфигурация, то см:
fixxxer:
3. Читаем мануал по fsockopen, fwrite, fread. Еще пригодится urlencode. Делаем обмен данными
 

Мутник

Новичок
Palladium

хех... базу данных GNT ломаешь? :)

-~{}~ 12.04.05 22:22:

fixxxer

а на самом деле, там пост особо не нужен. Это все можно через fopen сделать, предварительно корректно составив линк!

Palladium
P.S. не изобретай велосипед, читай документацию к системе! Там все конкретно написано!
 
Сверху