我有一个可以访问的网址http://abc.def.com/something,它以 JSON 库的形式返回一条状态消息。从这个 JSON 库中,我需要检索字段“fileDownloadURL”的值,但在第一次尝试时,这始终是空字符串。因此,我需要访问一个不同的 URL http://abc.def.com/something_else,它返回一个与第一个具有相同字段的新 JSON 库,但一段时间后,“fileDownloadURL”的值不再为空。
这适用于我的任何浏览器,但是当我尝试在 Python 中执行此操作时,第二个 URL 返回的“fileDownloadURL”值一直为空。我认为这是因为我的浏览器向 URL 发送了一些关于我是谁的信息,但我没有在 Python 中发送这些信息。
如何让服务器意识到访问这两个 URL 的是同一个人?
示例代码是
import urllib2, base64, json, time
base64string = base64.encodestring('%s:%s' % (username, password)).replace('\n', '')
request = urllib2.Request("http://abc.def.com/something")
request.add_header("Authorization", "Basic %s" % base64string)
url_response_json = urllib2.urlopen(request)
url_response_dict = json.load(url_response_json)
fileDownloadURL = url_response_dict["fileDownloadURL"]
status_url = urllib2.Request("http://abc.def.com/something_else")
status_url.add_header("Authorization", "Basic %s" % base64string)
while fileDownloadURL == '':
url_status_json = urllib2.urlopen(status_url)
url_status_dict = json.load(url_status_json)
fileDownloadURL = url_status_dict["fileDownloadURL"]
time.sleep(3)
这段代码永远不会跳出 while 循环。