我正在使用Yahoo Api,除此之外我還實現了隨機睡眠方法,但我仍然無法確定如何等待或再次嘗試,在第一次嘗試時得到迴應。等待API響應成功
舉例來說,我在下面提供的代碼在某些用戶中完全失敗。失敗後,我會在瀏覽器上看到這個網址,它就像一個魅力一樣。所以我的問題是爲什麼?我該如何解決這個問題?或者我可以改善這個代碼做一個困難的睡眠後做另一個請求(只有如果這是一個很好的做法)
我有更多的信息,我忘了添加,我改變了代碼,以獲得我的http成功代碼:
print urlobject.getcode()
它返回200,但沒有JSON,因爲一些人認爲這可能是油門。
注:我已經從URL
# return the json question for given question id
def returnJSONQuestion(questionId):
randomSleep()
url = 'http://answers.yahooapis.com/AnswersService/V1/getQuestion?appid=APPIDREMOVED8&question_id={0}&output=json'
format_url = url.format(questionId)
try:
request = urllib2.Request(format_url)
urlobject = urllib2.urlopen(request)
time.sleep(10)
jsondata = json.loads(urlobject.read().decode("utf-8"))
print jsondata
except urllib2.HTTPError, e:
print e.code
logging.exception("Exception")
except urllib2.URLError, e:
print e.reason
logging.exception("Exception")
except(json.decoder.JSONDecodeError,ValueError):
print 'Question ID ' + questionId + ' Decode JSON has failed'
logging.info("This qid didn't work " + questionId)
return jsondata
這將是偉大的,如果你將添加確切的失敗信息 – cleg
哇感謝這麼多奇妙的答案!我將嘗試其中的一個工具並看看。我不知道我應該選擇哪個答案,他們都精彩地解釋希望所有人都能得到選票。 –