7

Windows プラットフォームの C++ で XmlRpc を使用する必要があります。XmlRpc は「広く利用可能な標準テクノロジ」であると友達が断言してくれますが、XmlRpc 用のライブラリはあまり多くありません。実際、Windows でこれを行うためのライブラリは 1 つしか見つかりませんでした (さらに、「これを Windows でコンパイルするには多くの作業を行う必要がある」と主張する別のライブラリもありました)。私が見つけたライブラリは、Chris Morley の「XmlRpc++」でした。ただし、SSL には対応していません。

したがって、私の質問は次のとおりです。どのライブラリを使用する必要がありますか?

4

5 に答える 5

9

独自の C++ ライブラリを作成しました。sourceforge で入手できます: xmlrpcc4win

Chris Morley のものを使用するのではなく、私がそれを書いた理由は次のとおりです。

  • Windows の "wininet.lib" ライブラリには、HTTP 要求を処理するためのすべての機能が備わっているので、むしろそれを使用したいと思います。その結果、1700 LOC しか必要ありませんでした。
  • 「wininet.lib」、つまり私の実装は HTTPS をサポートしています
  • Chris Morley の STL コンテナーの使用は非常に非効率的でした (Chris、これを読んだら私にメールしてください)。
于 2009-06-16T02:07:44.777 に答える
4

私が自分のライブラリを書くまで(上記を参照)、ここに私の答えがありました:

現在、 ChrisMorleyによるXmlRpc++ライブラリは、Windows上のC++用の唯一のパブリックドメイン/LPGLXmlRpc実装です。

Linux用のC++実装はいくつかあり、どちらもおそらくWindowsに簡単に移植できますが、実際には、まだ誰も移植して公開していないようです。また、eczamyが言うように、「XML-RPC仕様はやや単純であり、独自のXML-RPCクライアントを実装することは難しくありません」。

かなりの数のバグを見つけて修正しなければならなかったにもかかわらず、私はChrisMorleyのライブラリをうまく使用しています。このプロジェクトのヘルプフォーラムはやや活発なようですが、これらのバグを修正して新しいリリースを行った人は誰もいません。私はChrisMorleyと連絡を取り合っており、彼は新しいリリースを行うことを漠然と望んでいます。彼はこのstackOverflowの質問に貢献し(以下/上記を参照)、ほとんどのバグを修正したと主張していますが、これまでのところ、彼は修正していません。多くのバグを修正するリリースを作成しました。最後のリリースは2003年でした。

広くサポートされている(そして単純な!)プロトコルがWindows + C ++でサポートされていないのは、私にとって残念なことです。このページを読んでいる誰かがバトンを手に取って、たとえばXmlRpc ++を引き継ぐか、Linux実装の1つを適切に移植することができますか?

于 2008-11-09T07:29:52.547 に答える
1

https と基本的なユーザー名/パスワード認証で動作する xml rpc の Tim のバージョンを取得することができました。

認証の場合:

1) ユーザー名とパスワードを InternetConnect(...) 関数に渡す必要があります

2) HttpSendRequest(...) コマンドを送信する前に、"Authorization: Basic base64encoded(user:pass)" の http 要求ヘッダーを追加する必要があります。

于 2013-02-06T20:40:53.353 に答える
1

XML-RPC実装には数十の実装があり、一部は C++ で実装されていますが、ほとんどは他の言語で実装されています。たとえば、XmlRpc++ の他に、C および C++ 用の XML-RPCもあります。これは、C および C++ ライブラリー用の XML-RPC の使用方法に関するHOWTOです。

XML-RPC 仕様はいくぶん単純なので、独自の XML-RPC クライアントを実装することは難しくありません。言うまでもなく、C で既存の XML-RPC 実装を使用して、C++ プロジェクトに取り込むことも可能です。

XML-RPCホームページにも、多くの有用な情報が提供されています。

于 2008-09-16T00:38:06.013 に答える
1

いくつかの項目に注意したいだけです:

  • XmlRpc++ の cvs リポジトリのソースは、OpenSSL をサポートしています (試したことはありませんが、別の開発者によって提供されたものです)。

  • 報告されたバグのほとんどは cvs で修正されています。現時点では Linux マシンにアクセスできないため、公式リリースは行っていません。

  • XmlRpc++はパブリック ドメインではありません。著作権とライセンス (LGPL) で保護されています。

ありがとう、クリス・モーリー

于 2008-11-10T00:03:45.300 に答える