Golang の標準ライブラリを使用して JSON RPC サーバーに接続する
この質問では、Go の標準ライブラリを使用して HTTP JSON RPC サーバーにアクセスする可能性を検討しています。ツール。サーバーのセットアップでは rpc.NewServer() 関数が使用されますが、目的は、Web ページまたはコマンド ラインからの単純な POST リクエストを使用して接続を確立することです。
HandleHTTP() 関数のデフォルトの動作は HTTP を想定しています。クライアントは CONNECT コマンドを発行し、JSON RPC リクエストをストリームに直接送信します。ただし、このアプローチはブラウザでは一般的にサポートされておらず、より特殊な設定が必要です。
解決策: カスタム HTTP ハンドラー
この課題を克服するために、提案されたソリューションでは、 HTTP リクエストとレスポンスを ServerCodec に適合させて、標準ライブラリの RPC サーバーと互換性を持たせるカスタム HTTP ハンドラー。これにより、サーバーへのシームレスな POST リクエストが可能になります。
テスト サーバーの実装
提供されたコードは、このカスタム HTTP ハンドラーを使用するテスト サーバーを示しています。 http.HandlerFunc() を使用して実装されたサーバーは、/bake-me-a-cake エンドポイントでリクエストに応答します。
jsonrpc.NewServerCodec() 関数は、HTTP 接続を ServerCodec に変換するために使用されます。 。次に、サーバーは JSON RPC リクエストを処理し、JSON 形式でレスポンスを返します。
クライアント インタラクション
クライアント インタラクションを示すために、次を使用して POST リクエストがサーバーに送信されます。 http.Post() 関数。応答が受信され、返された JSON が表示されます。これにより、クライアントとサーバー間の接続とデータ交換が成功したことが検証されます。
以上がGo の標準ライブラリは、単純な HTTP POST リクエストを介して JSON RPC サーバー接続を処理できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。