Python向post主体添加数据

2024-04-20 07:02:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在努力让一个restapi帖子与供应商API一起工作,希望有人能给我一个指针。在

其目的是向post主体提供一个cli命令,并将其传递给返回输出的设备。在

调用如下所示:(这适用于所有其他调用,但由于发布到正文而有所不同)

  def __init__(self,host,username,password,sid,method,http_meth):
   self.host=host
   self.username= username
   self.password= password
   self.sid=sid
   self.method=method
   self.http_meth=http_meth

  def __str__(self):
   self.url = 'http://' + self.host + '/rest/'
   self.authparams = urllib.urlencode({ "session_id":self.sid,"method":  self.method,"username": self.username,
        "password": self.password,
    })

 call = urllib2.urlopen(self.url.__str__(), self.authparams).read()
 return (call)

不管我怎么试,我都不能使它正常工作。以下是API文档的摘录,解释了如何使用此方法:

要处理这些api,请将CLI命令放在httppost缓冲区中,然后将 方法名、会话ID和URL中的其他参数。在

有谁能告诉我怎么正确地做这件事吗。我不是一个开发人员,我正在努力学习正确的这一点。例如,如果我想在post body中发送“help”命令?在

谢谢你的指导


Tags: 命令selfapihttphosturldefusername
1条回答
网友
1楼 · 发布于 2024-04-20 07:02:09

好吧,这太简单了,我想得太多了。我发现有时候我可以看到一个比真正的问题和腰部时间更高的层次。不管怎样,这就是它的工作原理:

   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命令只是放在缓冲区中,而不是编码的。。。。在

相关问题 更多 >