我正在使用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
哇感谢这么多奇妙的答案!我将尝试其中的一个工具并看看。我不知道我应该选择哪个答案,他们都精彩地解释希望所有人都能得到选票。 –