2017-06-17 65 views
1

让我开始说我是极其 Python新手,但我熟悉其他编程语言。在深入研究这个项目之前,我需要问几个问题。Python的URL请求

我需要能够直接从Python获得URL GET,PUT,POST和DELETE请求。

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

什么是最好的方式来做到这一点,urllib.request?

谢谢你教育我。

+0

首先为已知的东西写一个额外的模块是不必要的。如果您不愿意指导用户单独下载它们,则可以在脚本本身内处理该安装。否则,urllib将帮助你开发自己的模块。 – Arockia

+0

除了函数中的url请求之外,我们还在做其他事情,所以它不是没有必要的。我不想写一些依赖于外部库的东西,所以我想我会用urllib2去。 –

+0

然后你可以去开发你自己的。事实是,将您的更改与标准库合并会更容易。没有其他关注:) – Arockia

回答

0

我需要能够直接从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及其各种高级服务(如下面的重定向)。

+0

urllib2.Request.get_method呢? –

+0

@JoeBlow * urllib2.Request.get_method()*只返回* GET *或* POST *。没有其他选择。 –