【问题标题】:httplib vs urllib2 and cookieshttplib vs urllib2 和 cookie
【发布时间】:2014-06-25 22:53:51
【问题描述】:

我喜欢 urllib2 用于自动化日常操作,例如 cookie 处理(使用 cookielib.CookieJar)或重定向处理。但我也喜欢httplib 程序员拥有的低级控制。例如,httplib 我可以控制 HTTP 标头的顺序,但urllib2 我不能。此外,使用httplib,我可以轻松地将Content-Type 标头设置为我需要和发送的任何内容,但不能使用urllib2 - 它需要对标头本身进行过多控制,并且可能会通过其内部逻辑重写我的标头。

我会留在httplib,但使用httplib 处理cookie 并不是一件容易的事。我无法将它连接到cookielib,并且通过开发我自己的 cookie 处理类在 20 分钟内完成 cookie 解析和处理并不是那么简单的任务。

httplib 是否有任何 cookie 处理解决方案标准?

有没有办法控制与urllib2 一起发送的标头顺序并关闭可能添加新标头的智能?

【问题讨论】:

  • 我更喜欢requests
  • 实际上我已经使用 js、java、groovy、python(urllib2 和 requests)完成了 http 请求,我相信 requests 是迄今为止最好的。非常易于使用和体面的文档。
  • @FooBarUser 是否允许您控制标题顺序?是否支持cookies?
  • cookies 对于标题我知道它需要一个 dict 作为 arg,我相信如果你通过 ordereddict 它会按顺序工作,但我从未尝试过。
  • @FooBarUser 我的选择是httplib + import Cookie

标签: python http cookies urllib2 httplib


【解决方案1】:

您可以将标头传递给 httplib。

import httplib
headers = {"Cookie": "foobar",
           "Accept": "text/plain"}
conn = httplib.HTTPConnection("example.org")
conn.request("GET", "", "", headers)
response = conn.getresponse()
conn.close()

您仍然可以使用 Cookielib 来管理它们。

【讨论】:

  • cookies 应该是键值对。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-23
  • 2011-07-29
  • 1970-01-01
  • 2016-07-14
  • 2011-09-12
  • 2013-05-12
相关资源
最近更新 更多