За последние 24 часа нас посетили 20063 программиста и 1653 робота. Сейчас ищут 1824 программиста ...

file_get_contents нестабильно получает ответ

Тема в разделе "PHP для новичков", создана пользователем skysk8, 4 июл 2012.

  1. skysk8

    skysk8 Активный пользователь

    С нами с:
    31 авг 2011
    Сообщения:
    7
    Симпатии:
    0
    Адрес:
    Msk
    Здравствуйте, помогоите с определением причины проблемы!

    Ситуация:

    С одного компа в сети делаю запрос к серверу, который отдает в ответ json, т.е вот так:
    file_get_contents('http://сервер.ру/тест/111', false, контекст с хидерами и POST инфой);
    в результате сервер получает запрос, успешно его обрабатывает и возвращет некоторое число, по сути id для какого-то набора данных..
    И вот проблема - file_get_contents по непонятным причинам получает этот ответ крайне нестабильно:
    первая серия тестов - 90 из 100 успешно;
    вторая серия - 10 из 100;
    третья 100 из 100;
    error = 'failed to open strem: HTTP request failed'; при этом данные до сервера доходят и успешно сохраняются.

    Попробовал реализовать через curl:
    $a = curl_init('http://сервер.ру/тест/111');
    curl_setopt($a, CURLOPT_POST, 1);
    curl_setopt($a, CURLOPT_POSTFIELDS, 'данные');
    curl_setopt($a, CURLOPT_RETURNTRANSFER, 1);
    ну и наконец curl_exec - проверил раз 10: 500 из 500 успешных тестов... посмогите понять причину..
    Заранее спасибо!)
     
  2. skysk8

    skysk8 Активный пользователь

    С нами с:
    31 авг 2011
    Сообщения:
    7
    Симпатии:
    0
    Адрес:
    Msk
    Возможно, решил проблему - подскажите, пожалуйста, как сменить версию протокола на http 1.1 в create_stream_context?...

    Добавлено спустя 58 секунд:
    ой, *stream_context_create
     
  3. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7