問題タブ [wininet]

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.

0 投票する
3 に答える
3538 参照

delphi - プログラムがリモート ftp サーバーにファイルをアップロードしないのはなぜですか?

ftpput api を使用してサーバーにファイルをアップロードするようにこのプログラムをコーディングしました。動作していませんが、ファイルは配信されません。

コードは次のとおりです。

0 投票する
2 に答える
346 参照

wininet - MSXML は \\share から xml ファイルをロードするときに wininet を使用します

WinInet はサーバーで使用するように設計されていないため、Classic ASP の MSXML を使用してリモート xml ファイルをロードするべきではないことはわかっています。

\\server\sharefolder から xml ファイルをロードすると wininet もロードされるかどうか知っていますか?

代わりに ServerXmlHTTP を使用する必要がありますか?

どうも

リド

0 投票する
2 に答える
1645 参照

wininet - WinInet: 最初の HttpSendRequest に時間がかかるのはなぜですか?

これは思ったほど単純ではないことを約束します。後のリクエストが別の URL に対するものであっても、HttpSendRequest への最初の呼び出しが後続の呼び出しよりもはるかに長い時間がかかるのはなぜだろうか。例えば:

InternetConnect(... "foo.com" ...) // すぐに返す HttpOpenRequest(...) //
すぐに返す
HttpSendRequest(...) // ~3 秒かかる
HttpSendRequest(...) // ~ かかる200ミリ秒

InternetConnect(... "bar.com" ...) // すぐに返す HttpOpenRequest(...) //
すぐに返す
HttpSendRequest(...) // 約 200 ミリ秒かかる

最初の HttpSendRequest(...) に時間がかかるのはなぜですか? これは、URL に関係なく、非常に一貫しています。

ありがとう、グレッグ

0 投票する
2 に答える
2855 参照

c++ - MFCアプリケーションでwininetとwinhttpを使用してエラーをコンパイルする

不思議なことに、以前はこれが機能していましたが、システムを再インストールし、w7にアップグレードしたところ、このコードをコンパイルできないようです。

問題は、ほとんどのアプリケーションでwinhttp.hを使用していることですが、wininet.h機能を使用して作成した単純なFTPクライアントオブジェクトがあります。どのヘッダーをどこにどのように含めても、アプリケーションをコンパイルできないようです。

現在、stdafx.hにあります:

そして私のftpクライアントでは.c

これにより、次の場合に失敗するFTPクライアントオブジェクトを除いて、すべてのオブジェクトが正常にコンパイルされます。

c:\ Program Files \ Microsoft Platform SDK \ Include \ WinInet.h(52):警告C4005:'BOOLAPI':マクロの再定義c:\ Program Files \ Microsoft Platform SDK \ Include \ winhttp.h(45):前の定義を参照'BOOLAPI'のc:\ Program Files \ Microsoft Platform SDK \ Include \ WinInet.h(270):エラーC2143:構文エラー:'(' c:\ Program Files \ Microsoft Platform SDK \ Include\WinInetの前に'}'がありません.h(270):致命的なエラーC1903:以前のエラーから回復できません;コンパイルを停止します

何かアドバイス?

0 投票する
2 に答える
3161 参照

c++ - 3 つ以上のダウンロードが既に進行中の場合の HttpSendRequest のブロック

私たちのプログラムでは、HTTP リクエストが必要になるたびに新しいスレッドが作成され、複数のスレッドが同時に実行される可能性があります。私が抱えている問題は、2 つのスレッドが既に実行されている場合、それらがを呼び出しInternetReadFile()た後にからの読み取りをループしているHttpSendRequest()場合、その後の呼び出しの試みはHttpSendRequest()その呼び出しでハングするだけなので、前述の 2 つのスレッドが継続してしまうことです。接続からの読み取りは問題ありませんが、3 番目の接続はタイムアウトにHttpSendRequest()なるまでブロックされます。

私が自分で見つけたものから、HTTP 仕様が推奨するように、これが wininet の動作方法のように思えます: "

さまざまなプログラムが同じサーバーへの複数の同時ダウンロードを処理するのを見てきましたが、さまざまな接続を管理したり、独自の http インターフェイスを作成したりするという点で、それを行うには多くの追加作業を行う必要があると思います。

2 つ以上のアクティブなセッションを処理するようにセットアップするのにさらに複雑さが必要になる場合は、一度に 1 つまたは 2 つのファイルのみを処理するように変更し、残りはキューに入れておきます。ただし、一度に2つ以上を許可する複雑さの少ない方法があれば(私の頭の中で、ダウンロードごとに新しいプロセスを使用するとうまくいくと思いますが、面倒になるでしょう)、それが望ましいでしょう。いずれにせよ、同時に 3 ~ 5 を超えるダウンロードが行われるわけではなく、各ダウンロードはユーザーの要求に応じて行われます。制限を変更するためのレジストリ ハックについての言及をいくつか読みましたが、それは間違いなく私が行うことではありません。何か案は?

0 投票する
1 に答える
2644 参照

windows - WinINet 使用時のパッシブ FTP タイムアウト

パッシブ ftp を使用してファイルを ftp しようとしていますが、putコマンドが呼び出されるとタイムアウト (12002) が発生します。

他の ftp サイトではパッシブ ftp を使用できますが、この新しいサイトでは使用できません。

同じサーバーで3つの異なる方法を使用してこれを試しました:

  • パッシブ モードの FileZilla クライアント - これは動作します
  • パッシブ モードの WinINet ライブラリ - PutFile の呼び出し時にタイムアウトが発生する
  • パッシブ モードの IE 6 - ディレクトリの一覧を表示しようとするとタイムアウトが発生する

これは Windows 2000 サーバー上にあります。

FileZilla が機能していたので、ファイアウォールが正しく設定されていると思います。

何が起こっているのかを理解するのを手伝ってくれる人はいますか?

0 投票する
2 に答える
6454 参照

c++ - C ++/WinInetプロキシ設定の変更Windows7

[免責事項:これは、私が知る限り、Windows7固有の問題です]

Windowsレジストリのプロキシ設定を変更し、次のコマンドを使用してWinInetAPIを呼び出すコードのブロックがあります。

これはXPとVistaでは完全に問題ありませんが、Windows 7では明らかに何かが変更されており、何らかの理由で以前のレジストリキーが注入されて、期待どおりに機能しなくなります。

これらの2行のコードをコメントアウトすると、レジストリ値は固定されますが、そのプロキシ情報に依存しているIEやその他のアプリケーションは、構成が変更されたことを認識していません。

オプションが変更され、リロードする必要があることをシステムに通知するためのより良い方法はありますか?私はこの問題、スイッチドコンパイラなどについて何日も検索しましたが、Windows7で期待するように動作させることはできません。

0 投票する
3 に答える
34300 参照

delphi - WinInet API を使用して Delphi で HTTP POST リクエストを送信する方法

WinInet 関数を使用して Delphi から HTTP リクエストを作成しようとしています。

これまでのところ、私は持っています:

しかし、これは何もしません (ネットワークの http トラフィックを盗聴して、機能するかどうかを確認しています)。私は InternetOpenURL を正常に使用しましたが、POST 要求も送信する必要があり、その関数はそれを行いません。

誰かが私に簡単な例を見せてもらえますか? 私が望む結果は、http 応答ページを var で文字列として取得することです。