Неустранимая ошибка PHP: необработанное исключение «Exception» с сообщением

У меня есть PHP-скрипт, который подключается к API и публикует информацию в их системах, но при попытке подключения выдает фатальную ошибку:

Fatal error: Uncaught exception 'Exception' with message 'Problem with
'http://apitestserver.co.uk:9000/Service.svc/Items' in
/var/www/html/e/connect_test.php:17 Stack trace: #0 
/var/www/html/e/connect_test.php(39): 
do_http_request('http://apitest....', 'hello') #1 {main} thrown in 
/var/www/html/e/connect_test.php on line 17

Если я отправляю его в PHP-скрипт, который просто захватывает IP-адрес, он работает, но если я отправляю его в API, это не так. Мой PHP-скрипт создает XML, а затем пересылает на сервер. Я получал ошибки, поэтому я просто создал следующий меньший скрипт для проверки соединения:

function do_http_request($url, $data, $method = 'POST', 
    $optional_headers = 'Content-Type: application/atom+xml') {

  $params = array(
    'http' => array(
        'method' => $method,
        'content' => $data
    )
  );

  if ($optional_headers !== null) {
    $params['http']['header'] = $optional_headers;
  }

  $ctx = stream_context_create($params);
  $fp = fopen($url, 'rb', false, $ctx);
  if (!$fp) {
    throw new Exception("Problem with $url");
  }

  $response = @stream_get_contents($fp);
  if ($response === false) {
    throw new Exception("Problem reading data from $url");
  }

  $metaData = stream_get_meta_data($fp);
  fclose($fp);

  if(!preg_match('~^HTTP.*([0-9]{3})~', 
    $metaData['wrapper_data'][0], $matches)){
    throw new Exception('MALFORED RESPONSE - COULD NOT UNDERSTAND HTTP CODE');
  }
  if (substr($matches[1], 0, 1) != '2') {
    throw new Exception('SERVER REPORTED HTTP ERROR ' . $matches[1]);
  }
  return $response;
}
$data = 'hello';
$paul = 
  do_http_request('http://apitestserver.co.uk:9000/Service.svc/Items',$data);

echo $paul;

Если я изменю URL-адрес на простой скрипт на другом из наших серверов, который просто захватывает IP-адрес входящего соединения и возвращает его:

 $ip=$_SERVER['REMOTE_ADDR'];
 echo 'IP equals = ' . $ip;

Тогда работает нормально, без ошибок.

Обновить -

с ошибками выдает следующее предупреждение, вероятно, потому что скрипт не отправляет правильную информацию в API

Warning: fopen(http://apitestserver.co.uk:9000/Service.svc/Items) 
[function.fopen]: failed to open stream: HTTP request failed! HTTP/1.1 
500 Data at the root level is invalid. Line 1, position 1.

Также обратите внимание, что я могу нормально обращаться к серверу API, используя fiddler для отправки созданных вручную элементов, только когда этот скрипт пытается подключиться и отправить данные, возникает проблема. Я написал еще один быстрый скрипт, который соединяет и распечатывает ответ по умолчанию (RSS-канал представленных элементов)

Когда я запускаю «основной» скрипт коннектора выдает следующие две ошибки

Warning: fopen() [function.fopen]: php_network_getaddresses: 
getaddrinfo failed: Name or service not known in 
/var/www/html/e/sequence.php on line 65

Warning: fopen(http://apitestserver.co.uk:9000/Service.svc/Items) 
[function.fopen]: failed to open stream: Operation now in progress 
in /var/www/html/e/sequence.php on line 65

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

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