Отправка xml-запроса

Статус
В этой теме нельзя размещать новые ответы.

Felclist

Новичок
Отправка xml-запроса

Помогите пожалуйста с отправкой запроса. Сталкиваюсь с такой проблемой впервые и сомневаюсь, что у меня правильная функция отправки
function request ()
{
$XMLBody = '<?xml version="1.0"?>'.'
...
;

$host = 'ping.server.ru';
$XMLRequest = 'POST /RPC2 HTTP/1.1
Host: ping.server.ru
Content-Type: text/xml
Content-Length: ' . strlen ($XMLBody).
$XMLBody;

$remote = fsockopen ($host, 80);
fwrite ($remote, $XMLRequest);
$Response = '';
while (!feof ($remote))
{
$Response .= fread ($remote, 8192);
}
fclose ($remote);
return $Response;
}
Что здесь может быть неправильно? Сейчас этот скрипт выполняется секунд 30 и нету никакого ответа:(
 

medwoodu

Новичок
У вас ошибка в формировании запроса,
strlen ($XMLBody).$XMLBody; должен быть отступ от содержимого в одну строчку
 

slach

Новичок
если быть точнее
Content-Length: ' . strlen ($XMLBody).
$XMLBody;
заменить на
Content-Length: ' . strlen ($XMLBody)."\n". $XMLBody;
 

phprus

Moderator
Команда форума
slach
А если быть еще точнее, то на:
Content-Length: ' . strlen ($XMLBody)."\n\n". $XMLBody;
Так как тело запроса отделяется пустой строкой, а не переводом строки.
 

hermit_refined

Отшельник
извиняюсь за вредность, но стандарт требует "\r\n":
Код:
generic-message = start-line
                  *(message-header CRLF)
                  CRLF
                  [ message-body ]
 

slach

Новичок
че вредность то?? требует, значит требует, значит надо писать =)
 

phprus

Moderator
Команда форума
hermit_refined
Блин. Всегда про \r забываю. Спасибо, что напомнил мне про \r.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху