Python上的REST GET请求发送命名参数

Python上的REST GET请求发送命名参数,python,rest,urllib2,Python,Rest,Urllib2,我在Linux上使用bash内部的curl进行游戏,但现在我需要将脚本移动到python,以便更有效。 在python上执行下面这行操作的最佳方法是什么 curl baseuri:port/resource -u user:pswd 我已经玩过urllib2,但是我不知道如何发送“-u user:pswd”您需要使用a来处理身份验证,并添加a来响应身份验证挑战: import urllib2 url = 'baseuri:port/resource' username = 'user' pa

我在Linux上使用bash内部的curl进行游戏,但现在我需要将脚本移动到python,以便更有效。 在python上执行下面这行操作的最佳方法是什么

curl baseuri:port/resource -u user:pswd
我已经玩过urllib2,但是我不知道如何发送“-u user:pswd”

您需要使用a来处理身份验证,并添加a来响应身份验证挑战:

import urllib2

url = 'baseuri:port/resource'
username = 'user'
password = 'pswd'

pwmgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
pwmgr.add_password(None, url, username, password)    
authhandler = urllib2.HTTPBasicAuthHandler(passman)

opener = urllib2.build_opener(authhandler)
response = opener.open(theurl)
是的,这是一把

如果可以安装第三方库,则添加并使用;这样就容易多了:

import requests

url = 'baseuri:port/resource'
username = 'user'
password = 'pswd'

response = requests.get(url, auth=(username, password))

实际上,我们使用pycurl,它也可以很好地工作。下面是从请求中获取json的示例:

    import pycurl
    import json
    from io import BytesIO

    data = BytesIO()
    pyCurl = pycurl.Curl()
    pyCurl.setopt(pyCurlClass.URL,string_http)
    pyCurl.setopt(pycurl.USERPWD, 'user:password')
    pycurl.setopt(c.WRITEFUNCTION, data.write)
    pyCurl.perform()

    dictionary = json.loads(data.getvalue())

参见
pycurl
是非常低的级别;这里的示例不包括接收响应所需的代码,例如,需要传入文件对象。Python的集成是相当。。。非音速,总体来说,这是一个非常低的水平。我在用C开发库时使用相同的方法。但是,除了非常特殊的情况外,
pycurl
不是我可以推荐的工具。当然不适合那些仅仅学习Python并试图通过身份验证执行简单GET请求的人。谢谢。我试过了,但在安装时遇到了问题,有一些线程显示了如何使用pip安装失败。