【问题标题】:Python URL RequestsPython URL 请求
【发布时间】:2017-11-19 22:19:06
【问题描述】:

首先让我说我是非常 Python 新手,但我熟悉其他编程语言。在我深入研究这个项目之前,我需要问几个问题。

我需要能够直接从 Python 发出 URL GET、PUT、POST 和 DELETE 请求。

我将为这些函数的特定用例编写一个库,我不希望用户必须去安装外部库(如“请求”)。

最好的方法是什么,urllib.request?

谢谢你教育我。

【问题讨论】:

  • 首先,为已知事物编写附加模块实际上是不必要的。如果您不愿意指示用户单独下载它们,您可以在脚本本身中处理该安装。否则 urllib 将帮助您开发自己的模块。
  • 除了函数中的 url 请求之外,我们还在做其他事情,所以这不是必需的。我不想写依赖于外部库的东西,所以我想我会使用 urllib2。
  • 然后你就可以自己开发了。事实上,将您的更改与标准库合并会更容易。没有其他问题了:)
  • urlib2 不在 Python 3 中。现在是 urllib.request。我不确定你的问题。有什么问题吗?

标签: python python-3.x http http-post http-method


【解决方案1】:

我需要能够直接从 Python 发出 URL GET、PUT、POST 和 DELETE 请求。 ... urllib2 最好的方法是什么?

由于urllib.request.urlopen() 硬连线到 GET 或 POST,因此您将需要 http.client.HTTPConnection

import http.client
import pprint

conn = http.client.HTTPConnection('www.jython.org')
c = conn.request('HEAD', '/index.html')
r = conn.getresponse()

pprint.pprint(r.getheaders())
print('Size of body:', len(r.read()))

该技术让您“更接近金属”并提供更多控制,但它 失去了 urllib.request 及其各种高级服务(如跟随重定向)的所有舒适。

【讨论】:

  • urllib2.Request.get_method 呢?
  • @JoeBlow urllib2.Request.get_method() 只返回 GETPOST。没有其他选择。
猜你喜欢
  • 2018-09-24
  • 1970-01-01
  • 1970-01-01
  • 2021-03-28
  • 1970-01-01
  • 1970-01-01
  • 2016-11-19
  • 2017-11-25
  • 2020-04-18
相关资源
最近更新 更多