Я использую XAMPP / Win10, PHP 7.0.1. Я схватил Socrata / натриево-PHP от GitHub и побежал index.php. Я не внес никаких изменений в файл.
Когда я отправляю форму, я всегда получаю Error "0" from server:
без другой информации. В моих журналах ошибок PHP ничего нет.
Я могу получить прямой доступ к выводу JSON без проблем. Я также могу взять и проанализировать его с помощью клиентского JavaScript.
Я просмотрел другой вопрос с той же проблемой, но это был другой набор данных, и поэтому ответ не применялся. Я также проверил предложение по этому вопросу, что я включаю CURL, что я подтвердил.
Я надеюсь использовать этот пример PHP для доступа к данным из CMS (что я уже делаю с JavaScript), но сначала мне нужно, чтобы он работал как есть, чтобы я мог научить себя следующим шагам.
Чтобы подтвердить, что это не проблема в soda-ruby
Я провел небольшое локальное тестирование и смог получить пример работы в PHP 7.0.3 (CLI сервер, только что установил через доморощенный).
Пример кода действительно дал нулевые результаты, поскольку опасные собаки в этом месте, очевидно, перешли, поэтому я обновил местоположение по умолчанию и диапазон поиска. Я также обновил образец, чтобы использовать новый Конечная точка SODA 2.1 для этого набора данных, хотя версия 2.0 до сих пор работает просто отлично. Поэтому убедитесь, что вы получаете последние обновления, чтобы мы были синхронизированы.
Error "0"
сообщение на самом деле исходит от libcurl
сам. Это означает, что у cURL была проблема, даже связанная с data.austintexas.gov
, что очень часто означает, что вашей системе не удалось выполнить рукопожатие SSL, потому что PHP / libcurl не доверяет сертификату удаленного сервера. Я видел это несколько раз на сайте Остина, и часто с пользователями Windows. Я подозреваю, что это так, особенно если учесть, что вы можете получить доступ к тому же API через JavaScript.
Решение состоит в том, чтобы либо обновить свои корневые сертификаты, либо указать на внешний центр сертификации, который не связан с XAMPP. Я никогда не делал этого с XAMPP сам, но это кажется надежным ответом: Включение поддержки SSL для CURL в XAMPP
Одно из предложенных исправлений также полностью отключает проверку SSL, что было бы неплохо, если бы вы просто собирались использовать PHP, чтобы немного взломать, а не работать. Но, пожалуйста, пожалуйста, не используйте этот обходной путь в производстве, поскольку он оставляет вас открытыми для атак MITM.
Других решений пока нет …