問題タブ [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.
c++ - 非標準サービスのプロキシ サーバー環境を通過するにはどうすればよいですか?
私は今日のプロキシサーバーが果たすことができる役割について正確には知りません.クライアント側でプロキシ環境から抜け出す方法をネゴシエートします。
私は既存のクライアントおよびサーバー システムを C および C++ で記述して速度を上げ、クライアントに少量の MFC を使用してユーザー インターフェイスを処理しています。私は Windows 上のシステムのサーバー側とクライアント側の両方を作成しました (私が働いている人々は主に Windows のすべてを使用する Web 開発者です - 選択ではありません) 効率のために wsock32 を介したバークレーソケットに固執しています。クライアントは、非標準ポートを介してサーバーに接続します (ポート 80 を使用することは一部の環境から抜け出すためのオプションですが、それを通過するプロトコルは HTTP ではありません)。クライアントがリアルタイム会議に参加している間、TCP 接続は開いたままになります。
当社の顧客ベースは、あらゆる種類のネットワーク環境に拡大しています。ポート 443 経由で安全に接続する機能を追加し、内部パケットを傍受できないため、プロトコルが多くの環境を通過できるようにするセキュア ソケットを使用することで、多くの問題を解決できました。しかし、ますます多くのお客様がプロキシ サーバー環境の背後にいて、私の直接接続がうまくいきません。私の昔からのプロキシ サーバーの理解では、プロキシ サーバーは HTTP 経由で外部の HTML コンテンツのプロキシとして機能し、ローカル アクセスを高速化するために人気のあるコンテンツをローカルにキャッシュし、IT スタッフが特定の宛先サイトをブラックリストに登録できるようにします。顧客は、私のソフトウェアがプロキシ環境を認識せず、簡単にナビゲートできないと不満を言っていますが、私は 「最適な」ソリューションを決定するのが難しいと感じています。私のソフトウェアは、各クライアント要求の後に接続を切断しません。その上、パケットはいつでもどちらの側からも来ることができます。基本的に、特定のニッチ向けの典型的なカスタム クライアント/サーバー システムです。
私の最初の反応は、「なぜ彼らは私のサーバーのアドレスをホワイトリストに追加できないのか」というものですが、IT スタッフに助けを求めずにやり遂げることができるプログラム的な方法があれば、それは政治的に優れており、間違いなくより良い解決策です。さらに、最近のプロキシ サーバーと環境の役割と目的をまだ理解していない可能性もあります。
私の最初の試みは、WinInet のさまざまなプロキシ機能を使用して、ポート 80 経由で非標準プロトコル サーバー (単純な HTTP に見える GET 要求を認識して応答し、単純な初期パケット スニッフィング (DPI) を使用する一部の環境を回避するための HTTP 応答ページ)。WinInet の HINTERNET 要求オブジェクトの背後にある実際の SOCKET ハンドルを取得し、ソフトウェアの既存の SOCKET 接続の代わりにそれを使用することを望んでいました。クライアント側でこれ以上変更する必要がないことを願っています。最初はそれが私の解決策のように見えましたが、さらに調べてみると、標準の select(...
クライアント側のライブラリ (商用でも問題ありません) を使用すると、ユーザーと IT スタッフの助けを最小限に抑えて、これらのプロキシ サーバー環境を乗り越えることができると誰か教えてもらえますか? 私が読んだことから、それはSOCKSを超えて成長しており、誰かが私の前にこの問題を解決しなければならないと考えています.
私の長々とした質問を読んでくれてありがとう、
破れた
image - HttpSendRequest で画像データを送信するには?
HttpSendRequest API を使用して画像を送信したい。
基本的に、いくつかの文字列パラメーターを使用してリクエストを投稿したいのですが、それらのパラメーターの後に生の画像データを送信する必要があります。
では、文字列のサイズに画像ファイルのサイズを加えた長さの unsigned char バッファを作成してから、文字列の memcpy と画像データの memcpy を実行しても問題ありませんか?
c++ - バイナリ イメージ データを文字列にコピーする
HttpSendRequest POST リクエストを使用して、ネットワーク経由で画像データを送信する必要があります。この目的のために、文字列を作成し、文字列にいくつかのパラメーターを追加してから、生の画像データを追加する必要があります。
ここで、投稿リクエストで画像を送信する方法を知りたいと思います。
visual-c++ - C++でちらつきに画像をアップロードする
win32、wininetを使用してVC ++でアプリケーションを作成し、Flickrに画像をアップロードしています。Frob、Tokenを正しく取得できますが、画像をアップロードしようとすると、投稿サイズが大きすぎるというエラーが発生します。
ヘッダーは次のように作成されます
Postリクエストのコンテンツは次のように作成されます。
文字列に画像データを追加してリクエストを投稿する方法がよくわかりません。画像データをUnicodeに変換する必要がありますか?誰かが私が間違っていることを見つけることができれば、それは私にとって非常に役立つでしょう。
c++ - Windows アプリケーションから SMS を送信する
SMSを携帯電話に送信する必要があるWindowsアプリケーションを作成しています。これはテスト目的のためだけです。これで、携帯電話を使用してこれを行うことができます。私は、USBを使用してPCに接続できるAndroidフォンを持っています。
アプリケーションは C++、windows api で作成されます。
任意のポインタが役立ちます
windows - WININET HTTP 要求に特定のネットワーク インターフェイスを使用する
発信 HTTP 要求に WININET インターフェイスを使用するときに、どのローカル ネットワーク インターフェイスを使用するかを指定する方法はありますか?
WINSOCK (bind() を使用) で行う方法は知っていますが、WININET を使用してそれを行う同等の方法が見つかりません。
c# - WinInetInternetSetOptionとINTERNET_OPTION_SUPPRESS_BEHAVIORオプションが期待どおりに機能しない
みなさん、こんにちは。時間を割いてこれを読んでくれてありがとう。デフォルトのWinInetCookie設定を上書きしたいac#アプリケーションがあります。目標は、システムのWinInet Cookieプライバシー設定が[すべてブロック]に設定されている場合でも、プロセス内でCookieが引き続き受け入れられるようにすることです。ドキュメントを読んで、それは十分に簡単に見えました。これが私が持っているもののクリーンアップされたバージョンです:
WinInet.InternetSetOptionは次のように定義されています。
そして定数は次のとおりです。
InternetSetOptionの呼び出しは成功します-エラーはありません。
また、InternetOpenによって返されたグローバルインターネットハンドルを最初のパラメーターとしてInternetSetOption呼び出しに渡してみましたが、違いはありません。クッキーは私のプロセス内で引き続きブロックされます。
これを行う必要がある理由は、Web要求を行う組み込みのFlashPlayerActiveXインスタンスがあるためです。他のInternetSetOption呼び出しを使用して、Flashがプロセスで使用するプロキシ設定を変更することに成功しました。私はこれをWindows7でテストしています。
c++ - INTERNET_AUTODIAL_FORCE_UNATTENDEDを使用したInternetDialでもエラーダイアログが表示されますか?
InternetDialを呼び出して接続を確立し、情報を報告するソフトウェアをリモートデバイスで実行しています。
ほとんどの場合、これは正常に機能しますが、場合によっては、何らかのエラー(信号不良など)が発生し、関数をINTERNET_AUTODIAL_FORCE_UNATTENDED
で呼び出しても、接続に失敗するとウィンドウにダイアログがポップアップ表示されることがあります。
むしろ厄介なことに、これらのダイアログはモーダルであるため、コードがロックされます。
ネットワーク構成のオプションとルーチンの呼び出し方法のほぼすべての組み合わせを試しましたInternetDial
が、いずれもそのダイアログの表示を停止しません。
これを回避する方法や、接続できる別の方法はありますか?それが違いを生むのであれば、私はVistaとXPEmbeddedで開発しています。
windows - Delphiの動的配列とwininet?
WinInet を使用して、サーバーの 1 つに接続して情報を取得しています。私は以下を使用しています:
今までは 2 つのバイト配列で十分でした。状況は変わりました。サーバーは、5000 より大きくても小さくてもよい情報を返すことができるようになりました。さらに悪いことに、InternetReadFile では、infoBuffer で可変サイズを返すことができます。
そのため、indexdata と infobuffer をバイト配列として宣言し、SetLength を使用してその長さを設定しようとしましたが、2 つのことが起こりました。
1) サーバーが返す indexdata のサイズがまだわからないため、たとえば 100000 に適切に設定することはできません。
2) データを使用できるように、Low(indexdata) を渡す CopyMemory を使用して indexdata を単純な文字列変数にコピーすることはできません。
Delphi でこれを処理するにはどうすればよいですか? C ではできますが、Delphi では適切に実行できないようです。
コードは高く評価されています
ありがとう!
c++ - ftp 後にファイルのサイズを取得するにはどうすればよいですか?
回答 を編集
finder.GetLength();