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 に答える