[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: отправить запрос SOAP-сервису..
NoMoreSorrow
нужно отправить определенный запрос с передачей некоторых параметров, и получить ответ от сервера.. пример запроса:

POST /webservices/ws.asmx HTTP/1.1
Host: 64.79.64.43
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://racing4g.com/AccountTransferMoney"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<AccountTransferMoney
xmlns="http://racing4g.com/">
<userReceiverID>
***параметр***</userReceiverID>
<receiverDBID>
***параметр***</receiverDBID>
<amount>
***Параметр***</amount>
</AccountTransferMoney>
</soap:Body>
</soap:Envelope>


подскажите, как реализовать? уже несколько дней в инете ищу ответ, так ничего и не получилось.. заранее спасибо



Спустя 12 минут, 53 секунды (26.12.2009 - 10:03) VolCh написал(а):
Толком что такое SOAP не знаю, но вижу основных два способа:
1. cURL - создаем запрос, прописываем заголовки, получаем ответ, парсим
2. Используем класс SoapClient

Спустя 37 минут, 47 секунд (26.12.2009 - 10:41) NoMoreSorrow написал(а):
можно поподробнее пожалуйста, с небольшим примером? а то я пробовал cURL использовать, ничего не получилось.. и в инете нормальных примеров не нашел. просто набросай несколько строк, для примера, как выполнить запрос.. а то я всю голову сломал уже

Спустя 1 час, 58 минут, 32 секунды (26.12.2009 - 12:39) VolCh написал(а):
Как-то так:


$body = urlencode("твой XML");
$curl_options = array (
CURLOPT_URL => '64.79.64.43/webservices/ws.asmx',
CURLOPT_POST => TRUE,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_HEADER => array(
"Content-Type: text/xml; charset=utf-8",
"Content-Length: " . strlen($body),
"SOAPAction: \"http://racing4g.com/AccountTransferMoney\""
),
CURLOPT_POSTFIELDS => $body;

)

$curl = curl_init()
or die("cURL init error");
curl_setopt_array($curl, $curl_options)
or die("cURL set options error" . curl_error($curl));
$response = curl_exec($curl)
or die ("cURL execute eroor" . curl_error($curl))
curl_close($curl);

Спустя 59 минут, 43 секунды (26.12.2009 - 13:39) NoMoreSorrow написал(а):
вместо запроса, который я написал в первом посте, cURL пытается отправить это..
%3C%3Fxml+version%3D%221.0%22+encoding%3D%22utf-8%22%3F%3E%0D%0A%3Csoap%3AEnvelope+xmlns%3Axsi%3D%22http%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema-instance%22+xmlns%3Axsd%3D%22http%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema%22+xmlns%3Asoap%3D%22http%3A%2F%2Fschemas.xmlsoap.org%2Fsoap%2Fenvelope%2F%22%3E%0D%0A++%3Csoap%3ABody%3E%0D%0A++++%3CRaceCreate+xmlns%3D%22http%3A%2F%2Fracing4g.com%2F%22%3E%0D%0A++++++%3CuserID%3E9313807%3C%2FuserID%3E%0D%0A++++++%3Cname%3ESN%7E%3F%3F%B0N%7E%3FN%7E%3F+%23234%3C%2Fname%3E%0D%0A++++++%3CcarID%3E385213%3C%2FcarID%3E%0D%0A++++++%3CraceType%3E1%3C%2FraceType%3E%0D%0A++++++%3ClevelMin%3E0%3C%2FlevelMin%3E%0D%0A++++++%3ClevelMax%3E7%3C%2FlevelMax%3E%0D%0A++++++%3Cbet%3E200%3C%2Fbet%3E%0D%0A++++++%3CmoneyType%3E1%3C%2FmoneyType%3E%0D%0A++++++%3CmaxMembersCount%3E2%3C%2FmaxMembersCount%3E%0D%0A++++++%3CraceClass%3EA%3C%2FraceClass%3E%0D%0A++++++%3CtrackID%3E19%3C%2FtrackID%3E%0D%0A++++++%3CauthCode%3E7f5fcb466b50ce77fd9a7091b7898e97%3C%2FauthCode%3E%0D%0A++++%3C%2FRaceCreate%3E%0D%0A++%3C%2Fsoap%3ABody%3E%0D%0A%3C%2Fsoap%3AEnvelope%3E


так и должно быть? почему-то ответ от сервера такой..

HTTP/1.1 100 Continue HTTP/1.1 500 Internal Server Error Cache-Control: private Content-Type: application/soap+xml; charset=utf-8 Server: Microsoft-IIS/7.5 X-AspNet-Version: 2.0.50727 X-Powered-By: ASP.NET Date: Sat, 26 Dec 2009 10:38:58 GMT Content-Length: 509 soap:ReceiverServer was unable to process request. ---> Data at the root level is invalid. Line 1, position 1.



мне кажется, данные передаются неправильно..

Спустя 1 час, 5 минут, 48 секунд (26.12.2009 - 14:45) VolCh написал(а):
Это я затупил , убери urlencode

Спустя 55 минут, 19 секунд (26.12.2009 - 15:40) NoMoreSorrow написал(а):
уже убирал, запрос получается только из переменных.. это только строки, которые заключены между тегами, в первом посте я обозначил их ***Параметр***.. а все остальное пропадает

Спустя 8 часов, 7 минут, 22 секунды (26.12.2009 - 23:48) VolCh написал(а):
Уверен? В чем смотрел?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.