Я использую openweathermap.org API, и это дает мне неправильный вывод.
Если я ударил этот URL, Я получаю следующий вывод:
"{"coord":{"lon":-121.96,"lat":37.83},"weather":[{"id":721,"main":"Haze","description":"haze","icon":"50n"}],"base":"stations","main":{"temp":281.21,"pressure":1030,"humidity":81,"temp_min":273.15,"temp_max":285.15},"visibility":11265,"wind":{"speed":1.07,"deg":54.0019},"clouds":{"all":1},"dt":1454739836,"sys":{"type":1,"id":409,"message":0.0189,"country":"US","sunrise":1454771247,"sunset":1454809012},"id":5342970,"name":"Diablo","cod":200}"
Если я позвоню по тому же URL через php curl
или же file_get_contents
Я получаю следующий вывод:
"{"coord":{"lon":-121.96,"lat":37.83},"weather":[{"id":801,"main":"Clouds","description":"few clouds","icon":"02n"}],"base":"cmc stations","main":{"temp":275.178,"pressure":1022.49,"humidity":83,"temp_min":275.178,"temp_max":275.178,"sea_level":1043.42,"grnd_level":1022.49},"wind":{"speed":1.07,"deg":356.501},"clouds":{"all":12},"dt":1454738179,"sys":{"message":0.0112,"country":"US","sunrise":1454771247,"sunset":1454809011},"id":5342970,"name":"Diablo","cod":200}"
Почему они разные?
Я не вижу проблемы. Возвращает точный одинаковые значения для долготы (-121.96
), широта (37.83
), ID города (5342970
) и название города (Diablo
), что ясно указывает на то, что оба результата представляют результаты из одного места.
Незначительные различия между обоими результатами, вероятно, вызваны незначительными изменениями в погоде или результатами, полученными с другого сервера или метеостанции (которые отличаются base
собственность вроде бы подсказала).
Я не стал бы беспокоиться об этих незначительных различиях. Тем не менее, у меня есть еще одна проблема (см. Мою заметку ниже).
Поведение zip
параметр ненадежен Когда я открываю ваш URL в своем браузере из моего местоположения (в Бельгии), я иногда получаю ожидаемые результаты, а иногда получаю эту ошибку:
{"cod":"404","message":"Error: Not found city"}
Чтобы избежать этой проблемы, лучше использовать один из следующих вариантов:
q
параметр, с названием города и страны в качестве значений:
http://api.openweathermap.org/data/2.5/weather?appid=35d3153a253e2536f49f02fd8080dfc2&q=Diablo,US
id
параметр, с идентификатором вашего города в качестве значения:
http://api.openweathermap.org/data/2.5/weather?appid=35d3153a253e2536f49f02fd8080dfc2&id=5342970
(Вы можете скачать список всех поддерживаемых идентификаторов города Вот)
lat
& lon
параметры, с вашей широтой и долготой в качестве значений:
http://api.openweathermap.org/data/2.5/weather?appid=35d3153a253e2536f49f02fd8080dfc2&lat=37.83&lon=-121.96
(Вы также можете найти широту и долготу вашего города в этот список поддерживаемых городов)
Увидеть API документы Больше подробностей.
Других решений пока нет …