Python将数据添加到帖子正文中

时间:2012-04-15 12:53:31

标签: python rest urllib2

我正在努力让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 post缓冲区中,然后放置 方法名称,会话ID和URL中的其他参数。

任何人都可以告诉我如何正确地做到这一点。我不是开发人员,我正在努力学习这一点。例如,如果我想发送命令" help"在邮政机构?

感谢您提供任何指导

1 个答案:

答案 0 :(得分: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命令只是放在缓冲区中而不是编码....