0

我正在努力让 Rest API Post 与供应商 api 一起工作,希望有人能给我指点。

目的是将 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 命令放在 HTTP 发布缓冲区中,然后将方法名称、会话 ID 和其他参数放在 URL 中。

谁能给我一个如何正确执行此操作的想法。我不是开发人员,我正在尝试正确学习这一点。例如,如果我想在帖子正文中发送命令“帮助”?

感谢您的任何指导

4

1 回答 1

0

好吧,这太简单了,我想多了。我发现有时我可以看到比问题实际和腰部时间更高的水平。无论如何,这就是它应该如何工作:

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

于 2012-04-16T15:12:56.747 回答