Возникли проблемы при получении данных из поста с использованием php fopen с потоковым контекстом - PullRequest
0 голосов
/ 29 января 2011

Я пытался выяснить, где моя ошибка в этой конкретной функции.Это очень похоже на опубликованную функцию в Интернете с небольшими изменениями.Во всяком случае, у меня есть конкретный URL-адрес в переменной $ PAYMENTPAGE-> ipa_url.Я пытаюсь опубликовать это, и просто возвращаю данные для проверки ('test'), чтобы убедиться, что соединение проходит правильно.Вместо этого я продолжаю получать пустую страницу.

Мне удалось заставить его работать, используя расширение curl, но я бы предпочел просто использовать потоки, поскольку они работают из коробки с любыми расширениями.Я знаю, что соединение установлено, потому что я получаю ошибки исключений, которые я исправил, но сейчас у меня просто возникают проблемы с выяснением, почему информация не возвращается из сообщения.

Ответы [ 2 ]

1 голос
/ 17 мая 2011

Если вы используете Ubuntu: это ошибка в версии PHP, которая поставляется с Ubuntu.Подробнее см. https://bugs.launchpad.net/ubuntu/+source/php5/+bug/650779.

0 голосов
/ 29 января 2011

Есть ли причина, по которой вы не используете библиотеку протокола http, такую ​​как cURL? Он обрабатывает потоки для вас и может выдавать информацию в случае ошибки.

function doPostRequest($url, $data, $optional_headers = null) 
{
   $ch = curl_init();
   curl_setopt($ch, CURLOPT_URL, $url);
   curl_setopt($ch, CURLOPT_POST, 1);
   curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

   //include array of additional headers
   if (count($optional_headers)) {
      curl_setopt($ch, CURLOPT_HTTPHEADER, $optional_headers);
   }

   return curl_exec($ch);
}
...