Python将数据添加到post正文
我正在努力获得一个RESTAPI帖子来与供应商API一起工作,希望有人能给我一个指针 其目的是将cli命令提供给post主体,并传递给返回输出的设备 该调用如下所示:(这适用于所有其他调用,但由于投递到正文而有所不同) 不管我怎么尝试,我都不能让它正常工作。以下是API文档的摘录,解释了如何使用此方法: 要处理这些API,请将CLI命令放入HTTP post缓冲区,然后将 URL中的方法名称、会话ID和其他参数 有谁能告诉我如何正确地做到这一点吗。我不是一个开发人员,我正在努力正确地学习这一点。例如,如果我想在帖子正文中发送命令“help”Python将数据添加到post正文,python,rest,urllib2,Python,Rest,Urllib2,我正在努力获得一个RESTAPI帖子来与供应商API一起工作,希望有人能给我一个指针 其目的是将cli命令提供给post主体,并传递给返回输出的设备 该调用如下所示:(这适用于所有其他调用,但由于投递到正文而有所不同) 不管我怎么尝试,我都不能让它正常工作。以下是API文档的摘录,解释了如何使用此方法: 要处理这些API,请将CLI命令放入HTTP post缓冲区,然后将 URL中的方法名称、会话ID和其他参数 有谁能告诉我如何正确地做到这一点吗。我不是一个开发人员,我正在努力正确地学习这一点。
谢谢你的指导好吧,这太简单了,我想得太多了。我发现有时候我可以从一个更高的层面来看待一个问题,而不是一个真正的问题。无论如何,这就是它应该如何工作:
def cli(self,method):
self.url = ("http://" + str(self.host) + "/rest//?method=" +str(method)+ "&username=" +str(self.username)+ "&password=" +str(self.password)+ "&enable_password=test&session_id="+str(self.session_id))
data="show ver"
try:
req = urllib2.Request(self.url)
response = urllib2.urlopen(req,data)
result = response.read()
print result
except urllib2.URLError, e:
print e.reason
cli命令只是放在缓冲区中,没有进行编码。…您最好使用请求库,它比urllib的级别更高,更易于使用。您的身份验证参数是否作为URL的一部分传递?我的意思是像url?sessionid=…&…我同意Tom的观点,使用请求,放弃urllib2Yes身份验证是url的一部分。。。请求看起来确实容易得多,所以让我试着让它以这种方式工作。如果我再次陷入困境,我会用解决方案发回。谢谢你的回复。好吧,即使有请求,我似乎也能用正确的方式来做这件事。因此,我需要将身份验证作为URL的一部分(URL?sessionid=…&…)输入,然后我只需要在帖子正文中放置一个命令“help”。我似乎无法理解,因为所有东西似乎都需要一个dictionary对象。任何人都有一个简单的例子来说明如何做到这一点。。。谢谢
def cli(self,method):
self.url = ("http://" + str(self.host) + "/rest//?method=" +str(method)+ "&username=" +str(self.username)+ "&password=" +str(self.password)+ "&enable_password=test&session_id="+str(self.session_id))
data="show ver"
try:
req = urllib2.Request(self.url)
response = urllib2.urlopen(req,data)
result = response.read()
print result
except urllib2.URLError, e:
print e.reason