2016-04-29 3 views
5

Вот простой код snipplet, но это просто зависает и не отвечает.GuzzleHttp Hangs при использовании Localhost

$httpClient = new GuzzleHttp\Client(); // version 6.x 

    $headers = ['X-API-KEY' => '123456']; 

    $request = $httpClient->request('GET', 'http://localhost:8000/BlogApiV1/BlogApi/blogs/', $headers); 
    $response = $client->send($request, ['timeout' => 2]); 

    echo $request->getStatusCode(); 
    echo $request->getHeader('content-type'); 
    echo $request->getBody(); 
    die(); 

Любые указания очень ценятся. Когда я попытался с помощью github api использовать мое имя пользователя и пароль, я получаю ответ 200 и много информации.

+0

Что произойдет, если вы попробуете 'http: // localhost: 8000/BlogApiV1/BlogApi/blogs /' в своем браузере? –

+0

@teko браузер пытается попытаться загрузить что-то, но никогда не делает. – user3264461

+0

Таким образом, проблема заключается в том, что скрипт, расположенный по адресу http: // localhost: 8000/BlogApiV1/BlogApi/blogs, не является фрагментом выше. –

ответ

1

У меня была такая же проблема. Я обошел его, указав base_uri, как показано ниже.

$client = new \GuzzleHttp\Client([ 
    'base_uri' => 'http://localhost:8000', 
    'defaults' => [ 
     'exceptions' => false 
    ] 
]); 

$response = $client->get('/api/user/1'); 
0

Если сценарий на http://localhost:8000/BlogApiV1/BlogApi/blogs хорошо работает, я готов поспорить, что X-API-KEY не отправляется.

Если вы посмотрите на документы (http://docs.guzzlephp.org/en/latest/request-options.html#headers), кажется, что вы отклонили массив опций.

Это должно быть

$headers = ['headers' => ['X-API-KEY' => '123456']]; 
+0

Пробовал выше но такой же предмет. Браузер продолжает пытаться загрузить. Apache становится невосприимчивым. – user3264461

+0

Итак, переместил мой код в FQD на веб-сервере и никаких проблем! Получил ответ json, как ожидалось. Поэтому он имеет какое-то отношение к localhost: 8000 на моем Mac OSX. Есть идеи? – user3264461

+0

Есть ли какая-нибудь известная ошибка для жужжания на localhost? Точно такой же скрипт работает на моем веб-сервере под и fqd. – user3264461

3

Наконец разрешили его. Guzzle (или CURL, чтобы быть конкретным) отклоняет запросы, если вы работаете с нестандартными портами.

Кроме того, это кажется случайным, когда-то это работает, когда-то это не так. Я переехал в порт 80, и Вуала все работало.

+0

Спасибо за совместное использование. Я не мог понять, в чем проблема. Я переместил весь свой сайт с моего ноутбука на поставщика веб-услуг. Он работает там, но, конечно, теперь я понимаю, что это потому, что, очевидно, они используют порт 80. Локально я использовал порт 8000. Еще раз спасибо! – user3264461

+0

Для разработчиков Laravel: я решил эту проблему, используя [Laravel Valet] (https://laravel.com/docs/master/valet). похоже, что Guzzle не нравится localhost. – louisfischer

Смежные вопросы