問題タブ [xmlrpclib]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - PythonでSimpleXMLRPCServerで**kwargsを使用する
pythonsSimpleXMLRPCServerを使用してリモートサービスとして公開したいクラスがあります。サーバーの起動は次のようになります。
次に、次のようなServiceRemoteクラスがあります。
したがって、ServiceRemoteオブジェクトに対するすべての呼び出しは、xmlrpclib.Serverに転送され、xmlrpclib.Serverはそれをリモートサーバーに転送します。問題は、名前付きvarargsを受け取るサービスのメソッドです。
@useDbデコレータは関数をラップし、呼び出しの前にdbを作成して開き、呼び出しが完了した後、結果を返す前に閉じます。
このメソッドを呼び出すと、「call()が予期しないキーワード引数'name'」というエラーが発生します。それで、変数の名前付き引数をリモートで取るメソッドを呼び出すことは可能ですか?または、必要なメソッドバリエーションごとにオーバーライドを作成する必要がありますか。
回答ありがとうございます。コードを少し変更したので、質問はもう問題ではありません。ただし、実際に位置引数を実装してリモート呼び出しをサポートする必要がある場合は、将来の参照用にこれを知っています。トーマスとプラプタクスのアプローチの組み合わせが良いと思います。xmlrpclientを介してクライアントでkwargsを位置引数に変換し、サーバー側のメソッドにラッパーを設定して位置引数を解凍します。
python - xmlrpclib を使用して client_address をすべてのメソッドに公開する方法は?
クライアントの IP をチェックするための小さな SimpleXMLRPCServer を作成します。
私はこれを試します:
サーバ
xmlrpclib をインポート
from SimpleXMLRPCServer import SimpleXMLRPCServer
サーバー = SimpleXMLRPCServer(("localhost", 8000))
def MyIp(): return "Your ip is: %s" % server.socket.getpeername()
server.register_function(MyIp)
server.serve_forever()
クライアント
xmlrpclib をインポート
se = xmlrpclib.Server(" http://localhost:8000 ")
print se.MyIp()
エラー
xmlrpclib.Fault: :(107, 'トランスポート エンドポイントが接続されていません')">
client_address をすべての関数から見えるようにするにはどうすればよいですか?
python - Python XMLRPC: クライアント側での任意の例外の処理
XMLRPC サーバーからクライアントに任意の例外を渡そうとしています (両方の Python スクリプト、例外の種類は両側で定義されています)。ActiveState Recipesには、返された「faultString」を解析し、それを既知の例外のリストと比較し、見つかった場合はその例外を発生させる ( でラップする代わりに)クライアント側の実装の例がありますxmlrpclib.Fault
。
XMLRPC 例外応答の例:
ActiveState レシピは、「ValueError:」文字列を分割し、「ValueError」をValueError.__name__
(allowed_errors = [ValueError, TypeError]
上のリンクを参照) と比較します。
このようなすべての例外を渡すことは可能ですか。つまりException
、(サーバーで発生した後) クライアント側で例外 (または他の基本クラスから派生) を自動的に発生させますか?
ActiveState スクリプトは機能しますが、スローされる可能性のあるすべての例外を登録したくはありません( にある必要がありますallowed_errors
)。
(おまけの質問: この問題を適切に処理できる XMLRPC 以外のテクノロジはありますか? Pyro はありますか?)
python - xmlrpclib クライアント要求のタイムアウト
Python の xmlrpclib を使用して、xml-rpc サービスにリクエストを送信しています。
クライアントのタイムアウトを設定する方法はありますか? サーバーが利用できないときにリクエストが永久にハングしないようにする方法はありますか?
でソケットのタイムアウトをグローバルに設定できることはわかっていますsocket.setdefaulttimeout()
が、それは好ましくありません。
python - Python スクリプト内から Python インタラクティブ インタープリターを呼び出す
python -i
現在のスクリプトのオブジェクト/名前空間などが保持されるように、単に使用するのと同様の方法で、 script 内から Python インタープリターを起動する方法はありますか? 使用しない理由python -i
は、スクリプトが XML-RPC サーバーへの接続を初期化し、エラーが発生した場合にプログラム全体を停止できるようにする必要があるためです。どうやら、次のようなことはできないため、有効な入力があるまでループできません。
なぜなら:
残念ながら、python -i
トレースバックを出力した直後にインタープリターを開始するため、スクリプト内から対話型インタープリターを呼び出す必要があります-スクリプトの実行を置き換えて、サーバー接続を保持します-
python - 一般に、XML-RPC では一度にいくつかの関数を呼び出すことができますか?
XML-RPC サーバーへの 1 回の投稿でいくつかの質問をすることはできますか? はいの場合、どうすればpythonとxmlrpclibでそれを行うことができますか?
私は遅い接続で XML-RPC サーバーを使用しているので、一度にいくつかの関数を呼び出したいと思います。呼び出しごとに 700 ミリ秒かかるからです。
c# - C#のIronPython:xmlrpclibという名前のモジュールはありません
IronPython用のインタラクティブコンソールを使用してWebアプリケーションを構築しようとしています。IronPythonの通常のコンソールにxmlrpclibをインポートしようとすると、機能します。ただし、C#コード内でIronPythonを使用すると、「xmlrpclibという名前のモジュールがありません」という例外がスローされます。これは既知の問題ですか?この問題を解決するための解決策はありますか?
コードは次のとおりです。
python - Pythonxmlrpclibでgeventを使用する
geventでpythonの標準libsxmlrpclibを使用することは可能ですか?現在、monkey.patch_all()を使用しようとしていますが、成功しません。
urllib2.urlopenはサーバーをブロックしています。私には、monkey.patch_allがソケットにパッチを適用しなかったように見えます。そのため、ブロックされます。
ruby-on-rails - Rails アプリのインターフェース アーキテクチャ設計
データのハイブリッドへのインターフェイスとして機能する Rails アプリケーションがあります。私が必要とする情報のほとんどは、XML-RPC を使用してコマンド行プログラムから取得されます。これとは別に、データベースに保存するしかない追加のデータが必要です。このため、アプリケーションを設計する最善の方法を見つけるのに苦労しています。
XML-RPC を使用してプログラムから取得した適切なデータにそのインスタンス変数を定義することにより、オブジェクトの呼び出しに依存し、オブジェクトを「強化」するようにオーバーライドself.all
しました。self.find(id)
super
ただし、これはすべてかなり複雑に思えます。たとえば、魔法のファインダー ( find_by_x
) を使用する能力を失ったとします。これにより、他の何かが壊れるかどうかはわかりません。
私の質問は、これを行うためのより論理的で賢明な方法があるかどうかです。つまり、ほとんどのデータを XML-RPC に依存するアプリケーションを設計するだけでなく、データベースに格納された一部のデータも設計します。
について読みましafter_find
た。このコールバックを使用して、「オブジェクト エンリッチ」プロセスを実装し、レコードが見つかったときにいつでも実行できるようにします。ただし、アイテムに関連付けられたデータを取得する方法は、すべてのアイテム データを取得する方法とは異なります。すべてのアイテム データを取得する方法 ( ) は、 1 つのアイテムのデータself.all
のみを取得する方法 ( ) よりもはるかに効率的ですが、残念ながら適用できません。コールバックを呼び出しに適用しないようにする方法があれば、これはうまく機能します。self.find
self.all
python - Pythonを使用してPingomatic(XMLRPC)にpingを実行中にエラーが発生しました
Pythonを使用してPingomaticにpingを実行しようとしています。
私はこれを書いた:
しかし、実行すると、次のようになります。
どうすればこれを修正できますか?
ありがとうございました。