веб-сервисы — альтернатива fsockopen с curl в Stack Overflow

Я пытаюсь вызвать веб-службу транспортной компании в своем php-коде и получить результат xml. У меня есть этот пример кода, и я хочу знать, есть ли альтернатива, использующая curl.

Код:

  function doPost($_postContent) {
$postContent = "xml_in=".$_postContent;

$host="test.company.com";
$contentLen = strlen($postContent);

$httpHeader ="POST /shippergate2.asp HTTP/1.1\r\n"."Host: $host\r\n"."User-Agent: PHP Script\r\n"."Content-Type: application/x-www-form-urlencoded\r\n"."Content-Length: $contentLen\r\n"."Connection: close\r\n"."\r\n";

$httpHeader.=$postContent;$fp = fsockopen($host, 81);

fputs($fp, $httpHeader);

$result = "";

while(!feof($fp)) {
// receive the results of the request
$result .= fgets($fp, 128);
}

// close the socket connection:

fclose($fp);

$result = explode("\r\n\r\n", $result,3);
}

Могу ли я назвать это с помощью curl?

0

Решение

Вы можете использовать CURLOPT_PORT возможность изменить порт на 81. Смотрите http://php.net/manual/en/function.curl-setopt.php

$url = "http://test.company.com/shippergate2.asp";

$ch = curl_init();
curl_setopt($ch, CURLOPT_PORT, 81);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, "PHP Script");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postContent);
$data = curl_exec($ch);
1

Другие решения

Я думаю, что нужно полное решение, но я предлагаю проверить эту базовую оболочку CURL для PHP https://github.com/shuber/curl

0

По вопросам рекламы [email protected]