問題タブ [idhttp]
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.
delphi - Indy 10.6 - ネットワーク ストリームへの接続時に idHTTP 100% の CPU 使用率
私は Indy 10.5 といくつかの古いバージョンを何年も使用していました。HTTP ダイジェスト認証をサポートするために、SVN から最新バージョンをダウンロードしました。
これは、私が抱えていた HTTP ダイジェスト認証の問題を修正しています...
問題は、10.6 以降のすべてのバージョンでの CPU 使用率です。
HTTP ストリーム (正確にはネットワーク カメラ MJPEG ストリーム) を取得するために 20 のスレッドを並行して作成できましたが、解像度とフレーム レートに応じて、タスクごとに約 1 ~ 3% の CPU を使用していました。(解析とデコードを含む)
通常は IOHandler、CookieManager を使用し、InternalWork メソッドに依存するコードをクリーンアップして、次のような idHttp の最も基本的な使用法が残るまで:
また、設定を変更しない上記のコードでも、CPU の 25% を消費しています (そのため、コンピューターの 1 コアが飽和状態になります)。
これは無限ストリームであるため、クライアントに返されないのは正常ですが、ストリームはおそらく < 100kb/s であるため、それを取得するための CPU 使用率はゼロに近いはずです...
ドイツ語の別のフォーラムで、この HTTPOptions を追加すると高 CPU の問題が解決する可能性があることを読みましたが、私の場合は CPU には影響しません: HTTPOptions := [hoNoParseMetaHTTPEquiv]
Indy SVN の以前のリリースを試して、デイリー ビルドに固有のものではないことを確認しました。
XE4、XE5、および X6 に同梱されている 10.6.0 バージョンにも同じ問題がありますが、ロールバックすると: Indy 10.5.5 - RS2010 RTM
その後、すべてがうまくいき(HTTPダイジェスト認証を除く)、CPUの約2%しか使用しません...
誰かが同じことに遭遇し、現在のバージョンの indy がこれを行うために妥当な量の CPU を使用する方法を持っていますか?
ありがとうございました!
multithreading - Delphi:接続タイムアウト中にIdHTTPを使用するスレッドを正常に終了する方法は?
質問は、IdHTTP を使用してスレッドに実装された HTTP に関するものです。必要に応じて、スレッドを正常に終了したいと考えています。この目的のために、IdHTTP の HTTPWork イベント内で Terminated プロパティを定期的にチェックします。終了プロパティが設定されている場合、IdHTTP.disconnect メソッドが呼び出され、スレッドが終了します。
これは問題なく動作しますが、次の問題のあるシナリオを検討してください。
何らかの理由で、スレッドの開始時にネットワークがダウンします。タイムアウト後にソケット エラー例外が発生しますが、これも問題ありませんが、タイムアウト期間中は IdHTTP から発生するイベントがないため、終了したプロパティを確認する方法がありません。問題は、接続タイムアウト中に IdHTTP を使用するスレッドを正常に終了する方法です。
sockets - TIdHTTP は「Socket Error # 10060'#$D#$A'Connection timed out.」を返します。
私はDelphiが初めてです。WebService と通信するために、SSL (https) 用に TIdHTTP と TIdSSLIOHandlerSocketOpenSSL の 2 つのコンポーネントを追加しました。サーバーから応答を取得すると、機能せず、「Socket Error # 10060'#$D#$A'Connection timed out」が返されます。私は何をすべきか?以下は私のコードです。
前もって感謝します。
delphi - Delphi idhttp の長い URL パラメータは自動的に分割されます
indys idhttp を使用して URL を送信しています (投稿)
それは私にとって魅力のように機能します。300 文字を含むパラメーターを使用して URL (投稿) を送信しようとしていますが、90 文字ごとに「&」を追加することで自動的に分割されます。そのため、サーバーは 300 文字ではなく 90 文字しか受け取りません。
この自動分離なしで 300 文字のパラメーターを持つ URL を送信するにはどうすればよいですか?
delphi - idHttp Get + Delphi + 要求された URL は拒否されました
私はこのコードを実行しようとしています:
そして私はこれを得ています:
理由はありますか?
multithreading - IdHTTP 取得応答スレッド
このコードにスレッドをどのように使用しますか。このコードにより、プログラムはスレッドですばやくロックされます。
i = ListBox1.Items.Count -1 までスレッドを繰り返す方法
xml - Delphi idhttp 壊れた文字
私は Delphi XE5 に取り組んでおり、IDHTTP を使用してサーバーから XML を取得しています。XML の取得は正常に機能しますが、壊れた文字がいくつかあります。文字は '•' (箇条書き) です。他は問題ありませんが、箇条書きが壊れています。
以下のようにIDHTTPを作成しました。
そして、以下のようなxmlを取得します:
XML では、箇条書きは次のように表示されます。
? アナフィラキシー/過敏症: 過敏症反応を引き起こす可能性があります。
XML ヘッダーは以下のとおりです。
何を確認すればよいですか?
更新: XML スニペットを追加しました。スタイル用の XSL ファイルが必要ですが、この場合は問題ないと思います。'?' キャラ崩壊です。
間違った情報を流したようです。キャプチャした xml スニペットを添付しました。最初のものは REST クライアント ツールを使用してブラウザから取得した結果であり、最後のものは idhttp を介して xml を取得した結果です。