Python请求缓存身份验证标头

时间:2016-09-26 03:49:25

标签: python python-requests cache-control

我已经使用python的请求模块对每个迭代中具有不同数据集的单个URL进行POST调用(在循环内)。我已经使用会话重用来在循环迭代期间对URL的每次调用使用底层TCP连接。

但是,我想进一步加快我的处理速度1.缓存URL和身份验证值(用户ID和密码),因为它们在每次调用中都保持不变2.产生多个子流程可能需要一定的时间调用次数并将它们作为一组传递,从而允许并行处理这些较小的子进程

请注意,我将身份验证作为标题传递为base64格式,而我的帖子调用的伪代码通常如下所示:

S=requests.Session()
url='https://example.net/'
Loop through data records:
    headers={'authorization':authbase64string,'other headers'}
    data="data for this loop"
    #Post call
    r=s.post(url,data=data,headers=headers)
response=r.json()
#end of loop and program

请查看该方案并提出可能有帮助的任何技巧/提示 -

提前致谢, 阿布舍克巴克

1 个答案:

答案 0 :(得分:0)

你可以:

  1. 按照你的描述进行操作(如果你想让它更快,那么你可以使用多处理来运行它),例如将标头添加到会话,而不是请求。
  2. 修改目标服务器并允许发送一个包含多个数据的帖子请求(这样您就可以限制连接所花费的时间等)
  3. 在服务器端进行一些优化,因此它会更快地回复(或只是存储请求并使用某些回调向您发送回复)
  4. 如果你描述用例会更容易:)