2017-01-31 6 views
-1

Что вызовет request.get для тайм-аута, когда URL-адрес работает в браузере?request.get times out для URL-адреса, который мгновенно возвращается в браузер

Я видел ответ на requests.get returns 403 while the same url works in browser, который говорит о маскировке User-Agent, но моя проблема в том, что я получаю TimeoutError, а не то, что это запрещено. Я все равно пробовал, и это не помогло.

import requests 

def onemap_geocode(postalcode): 
    header = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'} 
    onemap_request = 'https://developers.onemap.sg/commonapi/search?searchVal=' + str(postalcode) + '&returnGeom=Y&getAddrDetails=N' 
    print(onemap_request) 
    response = requests.get(onemap_request,headers=header) 
    print('response obtained') 
    response_json = response.json 
    lat = response_json['results'][0]['LATITUDE'] 
    lon = response_json['results'][0]['LONGITUDE'] 

    return lat + ', ' + lon 

onemap_geocode(178880) 
+1

Я пробовал и не получаю таймаут. Но вы должны обновить строку 'esponse_json = response.json'' response_json = response.json() ', потому что она не может работать так. – Arount

+0

Ну, проблема может быть на вашей стороне, я получил результат почти сразу – Shane

+0

Мне удалось получить результат на моем персональном компьютере в моей собственной сети, поэтому я начинаю подозревать, что работа в сети блокирует ответ как-то , Тем не менее, техническая поддержка здесь невелика, поэтому мне нужно определить, что это значит, что она терпит неудачу, когда я вызываю вызов API таким образом, но он работает в браузере даже с маскировкой заголовка. Есть идеи? –

ответ

0

Используйте большое количество в тайм-аут:

response = requests.get(onemap_request,headers=header,timeout=100) 
0

response_json = response.json

Вы отсутствуют скобки при вызове метода response.json. Эта строка должна быть изменена на response_json = response.json().

Кроме этого ваш код работает должным образом.