問題タブ [qnetworkrequest]
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.
qt - Telegram ボットに Qt の setWebhook を使用する
Qt c++ を使用して Telegram ボットを開発していますが、Webhook を設定しようとして問題が発生しています。
SSL サーバー
まず、QTcpServer と QSslSocket を使用して ssl サーバーを作成しました。これに関するいくつかの説明はQSslSocket docにあります。また、次のコマンドを使用して、Telegram doc で説明されているように、自己署名証明書を生成しました。
その結果、private.key ファイルと public.pem ファイルのペアが作成されます。そのため、接続を保護するために QSslSockets でそれらを使用しました。
その結果、接続をリッスンして受け入れることができる SSL サーバーになります。ブラウザーを使用して SSL サーバーに接続すると、自己署名証明書の使用に関する警告が表示されます (これは正常だと思います) が、サーバーには接続できます。サーバーから、ブラウザが送信したデータを読み取ることができます。だから、サーバー側はいいと思います。
setWebhook のリクエスト
setWebhook API メソッドのリクエストを実行するために、QHttpMultipartクラスを使用して MIME Multipart リクエストを作成します。API メソッドには、接続する URL と公開証明書が必要です。したがって、このコードを使用して url パラメータを生成します。
そして、このコードは証明書パラメータを生成します:
「webhook が設定されました」というメッセージが表示され、正しい応答が返されます。しかし、Telegram が ssl サーバーに接続すると、ssl ハンドシェイクが正しく終了しません (encrypted() シグナルも sslError() シグナルも発行されません)。問題は、公開証明書をアップロードする方法だと思います。ご覧のとおり、ファイル QHttpPart については、使用する値がわからないため、コンテンツ タイプ ヘッダーを設定しません。これが問題になるかどうかはわかりません。URL に「text/plain」を使用していますが、証明書ファイルに何を使用すればよいかわかりません。
だから、何が私の問題なのかわかりません。でも、それがファイルのアップロードであるかどうかはわかりません。自己署名証明書を使用することは問題ではありません。これは、ドキュメントがこれを有効な方法として示しているためです。どんな助けでも大歓迎です。
前もって感謝します。
c++ - QNetworkAccessManager が機能しない
次のコードがあります。
Googleサーバーにクエリを送信して応答を取得したいのですが、リクエストを送信しても上記のスロットのどれも呼び出されないので、何が間違っていますか? そのアドレスをブラウザに入力すると、データが取得されます。
c++ - Qt で QNetworkAccessManager のデフォルトの接続タイムアウトを変更するにはどうすればよいですか?
QNetworkAccessManager
と を使用していくつかの URL にアクセスしようとしていますQNetworkRequest
。ここに私のコードの一部があります:
接続の確立に時間がかかりすぎる場合があります (ネットワーク関連の問題のため)。
デフォルトの接続タイムアウトを変更する方法はありますQNetworkAccessManager
か?
c++ - Qt を使用したマルチパート アップロード中のエラー
QNetworkAccessManager を使用してファイルをアップロードしようとしていますが、常にエラーが発生します (URL 転送エラー - サーバーからの応答: 不正な要求)。以下は私のコードです
ただし、同じことを行うはずのこのpythonスクリプトを実行すると機能します。
c++ - QNetworkAccessManager->Post() を使用すると、アプリケーションの終了時に SEGV が発生する
****更新: Windows でのみ segfault が発生することに気付きましたが、Linux では問題ありません。Windows では、QT 5.5 と MinGW32 を使用しています。その理由を今でも知りたいです。
**** 最初の質問: 特に難しいことはありません。基本的なコンソール アプリケーションを作成します。Post() リクエストを送信する QNetworkAccessManager があります。コンソールを閉じると、segfault が発生します。
リクエストが正常に送受信されることに注意してください。私の質問は、そのセグメンテーション違反についてのみです。
Post() リクエストが送信されない場合、コンソールを閉じてもクラッシュしません。スタックからの助けはあまりありません。
スタック
メイン.cpp
CNetworkHandleTest.cpp
CNetworkHandleTest.h