Как HTTP POST XML-файл, используя PHP без cURL? [Дубликат]

На этот вопрос уже есть ответ здесь:

Как разместить данные в PHP с помощью file_get_contents? 3 ответа

У меня есть XML, созданный из таблицы. В MySql мне нужно сделать HTTP Post для вставки XML в веб-сервис. Веб-служба принимает только методы SOAP, HTTP POST и HTTP GET. Я пытался сделать HTTP-запрос POST по-разному, но безуспешно. Я никогда не работал с SOAP раньше. Как я могу сделать HTTP POST или SOAP-запрос?

post_xml.xml:




37
2013-07-10 06:10:42

2013
12
21
Sport



Jay
11z
[email protected]
99999999

1130 E Test
sa
Z
79924
USA




client1.php (HTTP POST-код)

$xml = file_get_contents('post_xml.xml');
$url = 'http://stg.sa.com/post.asmx/';

$post_data = array ("XML" => $xml);
$stream_options = array(
    $url => array(
        'method'  => 'POST',
        'header'  => 'Content-type: application/x-www-form-urlencoded' . "\r\n",
        'content' => http_build_query($post_data)
    )
);
$context = stream_context_create($stream_options);    
$response = file_get_contents($url, null, $context);

HTTP POST спецификации веб-службы:

Ниже приведен пример запроса и ответа HTTP POST.

POST /st.asmx/Post HTTP/1.1
Host: stg.sa.com
Content-Type: application/x-www-form-urlencoded
Content-Length: length
XML= string

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length


xml

Ответы на вопрос(1)

Ваш ответ на вопрос