problem z pobraniem JSON |
problem z pobraniem JSON |
13.09.2014, 19:54:23
Post
#1
|
|
Grupa: Zarejestrowani Postów: 137 Pomógł: 2 Dołączył: 2.07.2007 Skąd: Ostrzeszów Ostrzeżenie: (0%) |
Witam.
Mam problem z pobraniem JSONa. Oto link: http://geocoder.cit.api.here.com/6.2/geoco...icka_98_Wrocław i normalnie, gdy się go wyrzuci w przeglądarce to ładnie pokaże dane, ale mam problem z pobraniem tego w PHP. Pierwsze podejście z file_get_contents() nie wyszło bo wyświetla mi: file_get_contents(http://geocoder.cit.api.here.com/6.2/geocode.json?app_id=DemoAppId01082013GAL&app_code=AJKnXv84fjrb0KIHawS0Tg&searchtext=Stabłowicka_98_Wrocław) [<a href='function.file-get-contents'>function.file-get-contents</a>]: failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request czytałem że rozwiązaniem tego problemu jest $path= str_replace('&', '', $path); niestety nie działa mi to. Drugie podejście:
i wyrzuca mi: Array ( [Details] => Bad request [type] => ApplicationError [subtype] => BadRequest ) co robić ? |
|
|
13.09.2014, 22:56:07
Post
#2
|
|
Grupa: Zarejestrowani Postów: 64 Pomógł: 10 Dołączył: 2.08.2012 Skąd: DW Ostrzeżenie: (0%) |
W przypadku file_get_contents sprawdź php.ini czy masz włączone allow_url_fopen. Curl powinien działać, więc może przekazujesz zły url.
Poniższe kody działają:
|
|
|
13.09.2014, 23:03:14
Post
#3
|
|
Grupa: Zarejestrowani Postów: 324 Pomógł: 105 Dołączył: 7.08.2012 Ostrzeżenie: (0%) |
Przepuść urla przez urlencode, a dopiero potem pobieraj.
|
|
|
14.09.2014, 07:02:56
Post
#4
|
|
Grupa: Zarejestrowani Postów: 64 Pomógł: 10 Dołączył: 2.08.2012 Skąd: DW Ostrzeżenie: (0%) |
Urla przepuszczasz przez urlencode jak go chcesz przekazać a nie wywołać.
|
|
|
14.09.2014, 09:13:51
Post
#5
|
|
Grupa: Zarejestrowani Postów: 137 Pomógł: 2 Dołączył: 2.07.2007 Skąd: Ostrzeszów Ostrzeżenie: (0%) |
cUrl działa, ale pod linkiem:
http://geocoder.cit.api.here.com/6.2/geoco...ka_98_Wroc%B3aw , a nie: http://geocoder.cit.api.here.com/6.2/geoco...icka_98_Wrocław jest funkcja, która polskie znaki zamieni mi na te % ? |
|
|
14.09.2014, 09:31:03
Post
#6
|
|
Grupa: Zarejestrowani Postów: 324 Pomógł: 105 Dołączył: 7.08.2012 Ostrzeżenie: (0%) |
irekk, owszem, ale skoro już w samym linku jest szukanie (searchtext), to znaczy, że zostało to przekazane.
Po prostu zasób dostępny jest pod adresem, gdzie polskie znaki są zakodowane. Przeglądarka sobie może poradzić sama ze zmianami, file_get_contents nie. W pierwszym linku występują polskie znaki, w Twoim przykładzie już nie. Więc i pobiera ładnie. Racja, że urlencode tutaj to nieprawda, ale faktem jest, że przed pobraniem trzeba zakodowac polskie znaki, bo z nimi nie pójdzie i jest http 400. smiady rawurlencode powinno sobie poradzić, ale z tym linkiem dziwne rzeczy się dzieją, pół znaków tak zakodowane, pół inaczej. Nie wiem jak sobie z tym poradzić. Ten post edytował kreatiff 14.09.2014, 09:59:55 |
|
|
Wersja Lo-Fi | Aktualny czas: 18.04.2024 - 08:40 |