Завиток ПОМЕЩАЕТ Запросы зависает


Итак, вот в чем моя проблема.

Я использую curl для доступа к моей базе данных CouchDB по HTTP. Недавно я обновил свой WAMP до 64-битной версии WAMP 3, которая поставляется с PHP 5.6.16 и Apache 2.4.17. Поэтому после этого обновления я обнаружил, что больше не могу выполнять запрос PUT.

Env

  1. PHP 5.6.16
  2. Apache 2.4.17
  3. 64-разрядная версия Windows 10
  4. Wamp 3 64 бит

Curl --версия

 curl 7.49.1 (x86_64-pc-win32) libcurl/7.49.1 OpenSSL/1.0.2h nghttp2/1.11.1
Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IPv6 Largefile NTLM SSL HTTP2

Код выполнен

Поэтому, когда я выполняю это :

<?php
$table="testname";
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'http://localhost:5984/' . $table);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, 'validUser:validPass');
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
 'Content-type: application/json',
 'Accept: */*'
));

$response = curl_exec($ch);
curl_close($ch);

echo $response;

Я получаю быстрый ответ от сервера.

Затем я пытаюсь создать базу данных:

<?php
$table = "testname";
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'http://localhost:5984/' . $table);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, 'validUser:validPass');
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
 'Content-type: application/json',
 'Accept: */*'
));

$response = curl_exec($ch);
curl_close($ch);

echo $response;

Проблема

Итак, когда я выполню этот код, запрос зависнет на curl_exec. Что странно, так это то, что по истечении времени ожидания CouchDB получит запрос, но ответа не получит. Похоже, что мой запрос "Положить" помещен в буфер и ожидает выполнения.

Подробный вывод завитка

* Hostname in DNS cache was stale, zapped
*   Trying ::1...
*   Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 5984 (#0)
* Server auth using Basic with user 'validUser'
> PUT /customers HTTP/1.1
Host: localhost:5984
Authorization: Basic dGVzdEFkbWluOnRlc3RQYXNzd29yZA==
Content-type: application/json
Accept: */*

* Operation timed out after 10000 milliseconds with 0 bytes received
* Closing connection 0

Подсказки

-Я попробуйте установить SSL-сертификат, но, похоже, это не сработало. Если этот сертификат все еще установлен, это может вызвать проблемы? - Я могу без проблем сделать запрос с клиентом REST в своем редакторе Atom. - Мне кажется, что в моем сетевом маршруте есть внутренняя проблема. Я говорю это, потому что это повлияло на PHP-Curl так же, как и на CLI Curl. Кроме того, я могу выполнить запрос GET, но запрос PUT похож на "зависание" без причины и "принимается" моей базой данных CouchDB, когда наступает время ожидания. Это как если бы я отправлял длинный запрос на опрос.

Что было проверено

  1. Выполните ту же команду в командной строке -> Тот же результат
  2. Попробуйте клиент REST в моем редакторе Atom с успехом
  3. Мой друг успешно пытается получить удаленный доступ к моей базе данных (так что CouchDB не кажется проблемой)
Author: Alexis Côté, 2016-06-23

1 answers

Даже если я тестировал с отключенным брандмауэром, удаление моего антивируса (Bitdefender Total Security 2016) исправило мою проблему.

 1
Author: Alexis Côté, 2016-06-27 17:39:51