問題タブ [winhttp]
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.
http - Win32: WinHttpReadData でのチャンク エンコーディング サポートのステータスは?
WinHttpReadDataのドキュメントには、 HTTP のチャンク転送コーディングに関して次のように書かれています。
Windows Vista および Windows Server 2008 以降、WinHttp を使用すると、アプリケーションはサーバーに送信されたデータに対してチャンク転送エンコードを実行できます。Transfer-Encoding ヘッダーが WinHttp 応答に存在する場合、WinHttpReadData はデータをアプリケーションに渡す前にチャンク情報を取り除きます。
誰でもこれを解読できますか?
Q1まず、このテキストは WinHttpReadData のページにあります。これは、... HTTP クライアント アプリケーション内でデータ、具体的には応答データを読み取るために使用されます。それで、それが言うとき、それはどういう意味ですか
Windows Vista および Windows Server 2008 以降、WinHttp を使用すると、アプリケーションはサーバーに送信されたデータに対してチャンク転送エンコードを実行できます。
WinHttpReadData 関数は、サーバーに送信されるデータでは使用されません。サーバーからデータを読み取るときに使用されます。
HTTP 要求の一部としてサーバーにデータを送信するために使用される WinHttpWriteData 関数のドキュメントを参照すると、チャンク転送機能については言及されていません。
Q2新しいチャンク転送サポートが何を意味するかを把握したとしたら、どうすればそのサポートを得ることができますか? Vista と WS2008 で新しいと書かれています。WS2003 で実行され、WinHttpReadData を使用するアプリを作成し、チャンクされた応答または WinHttpWriteData に遭遇し、チャンクされた要求を送信したい場合はどうなりますか?
行間で、このドキュメントは、Vista 時代の Windows SDK 以降の WinHttp.lib に対してリンクする必要があると言っていますか? それともWS2003では本当に無理なのでしょうか? つまり、このライブラリを使ってチャンク転送を行うアプリは、指定されたOSで動作しなければならないということでしょうか?
これは暴言のように聞こえるかもしれませんが、そうではありません。本当に知りたいです。
c++ - HttpAddUrl権限
WindowsServer2008マシンでカスタムWinHTTPベースのWebサーバーを実行しようとしています。
「http:// *:22222/」をHttpAddUrlに渡します
実行可能ファイルをAdministratorまたはLocalSystemとして起動すると、すべてが正常に機能します。ただし、セキュリティリスクを最小限に抑えるためにNetworkServiceとして実行しようとすると(アプリが管理者権限を使用する正当な理由がないため)、関数は「アクセス拒否」エラーコードで失敗します。
NetworkServiceがリッスンできるポートとインターフェイスに制限があることに気づいていませんでした。
NetworkServiceアカウントでアプリを実際に実行し、他のインターネットホストからアプリに接続できるように、アクセス許可を構成する方法はありますか?
asp.net - ASP.NETに証明書ストアの証明書の秘密鍵へのアクセスを許可するにはどうすればよいですか?
証明書ストアの証明書の秘密鍵にアクセスするASP.NETアプリケーションがあります。Windows Server 2003では、winhttpcertcfg.exeを使用して、NETWORKSERVICEアカウントへの秘密鍵アクセスを許可することができました。IIS7.5WebサイトのWindowsServer2008 R2の証明書ストア(ローカルコンピューター\パーソナル)にある証明書の秘密キーにアクセスするためのアクセス許可を与えるにはどうすればよいですか?
「Everyone」、「IIS AppPool \ DefaultAppPool」、「IIS_IUSRS」、および証明書MMC(Server 2008 R2)を使用して見つけた他のすべてのセキュリティアカウントへのフルトラストアクセスを許可しようとしました。ただし、以下のコードは、秘密鍵とともにインポートされた証明書の秘密鍵にコードがアクセスできないことを示しています。代わりに、秘密鍵プロパティにアクセスするたびにコードがスローされてエラーが発生します。
Default.aspx
Default.aspx.cs
http - VBAからHTTP経由でファイルをアップロード(WinHTTP)
VBA内からプログラムでバイナリファイルを(HTTP)アップロードしようとしています。サーバーにASPXページを配置して、ファイルと特定の追加パラメーターを受け入れるつもりです。
これを行うための優れた方法がたくさんあることは知っていますが(たとえば、aspxの代わりにWebサービスを使用する)、私の制約は、VBAで(Excelファイルで)実行する必要があり、クライアントに追加のコンポーネントをインストールできないことです。
したがって、WinHTTPを使用すると思います。フォームデータを投稿する例をいくつか見つけましたが、バイナリファイルを投稿することはできません。私はおそらくファイルの内容をbase64する必要がありますか?
だから私の質問は:
- エンコードを手動で行う必要がありますか、それともWinHTTPにそれを行わせることができますか?
- WinHTTPよりも優れたユーティリティはありますか?(追加のソフトウェアをインストールしたくないことを忘れないでください。WinXPPro、Office 2007、または.NET Frameworkに同梱されている必要があります。例)
- ASP.NET Webサービスを使用するなど、より良い方法はありますか?
Thx、chiccodoro
c - WindowsのCでwinhttpを使用する完全な例はありますか?
C++ で書かれた例はたくさんありますが、C だけで書かれたものはありません。http サーバーに接続し、返されたデータをダウンロードして、ファイルに保存しようとしています。Windowsでそれを行うより良い方法はありますか? WinHttp または WinInet を使用すべきではありませんか? C に関する Windows のドキュメントは、インターネット上で非常に不足しているようです。ご協力ありがとうございました。
winhttp - WinHTTP で IP 設定を設定する (c++)
Windows 7 で WinHTTP を使用しているコードがあります。
私が経験している問題は、ユーザーが IPv6 アドレス (無効になっている) を使用しようとすると、特定のホスト名への接続に時間がかかることです。
最初に IPv4 を試すように接続 (おそらく WinHttpConnect パラメーター) を構成したいと思います。
アドレスバインディングの順序を設定する方法はありますか?
c++ - Windows C++ MSXML の WinHttp ライブラリまたは XmlHttp を使用する必要がありますか?
かなり単純な質問です。ライブラリを使用WinHttp
して C++ プログラムで Web サービス リクエストを作成する必要がありますか、それともライブラリのIXmlHttpRequest
インターフェイスを使用しmsxml
て Web サービス リクエストを送信する必要がありますか? 明らかに、WinHttp
ライブラリはライブラリに比べてより細かい制御を提供しIXmlHttpRequest
ます。しかし、XmlHttpRequest
オブジェクトはw3.org
標準であり、理論的にはより移植性があります。
c++ - 最初のIPが不良の場合に、winhttpを使用してマルチホームホストに接続する
ここで説明されている機能を確認しようとしています:
http://msdn.microsoft.com/en-us/library/aa384066(VS.85).aspx
WINHTTP_OPTION_CONNECT_RETRIESWinHTTPがホストへの接続を試行する回数を含む符号なし長整数値を設定または取得します。Microsoft Windows HTTPサービス(WinHTTP)は、インターネットプロトコル(IP)アドレスごとに1回だけ試行します。たとえば、10個のIPアドレスを持つマルチホームホストに接続しようとし、WINHTTP_OPTION_CONNECT_RETRIESが7に設定されている場合、WinHTTPは最初の7個のIPアドレスにのみ接続を試みます。同じ10個のIPアドレスのセットが与えられ、WINHTTP_OPTION_CONNECT_RETRIESが20に設定されている場合、WinHTTPは10個のそれぞれを1回だけ試行します。指定された回数の試行後も接続の試行が失敗する場合、またはそれ以前に接続タイムアウトが期限切れになった場合、要求はキャンセルされます。WINHTTP_OPTION_CONNECT_RETRIESのデフォルト値は5回の試行です。
実際に動作します。
私のコードは:
これをテストする1つの方法は、これをC:\ WINDOWS \ system32 \ drivers \ etc\hostsファイルに配置することです。
タイプ
(これは失敗するはずです)そして
google.comの2つのDNSレコードが表示されます。
上記のように、デフォルト値は5です。これは、2番目のIPを試行する必要があることを意味しますが、そうではありません。私は何が欠けていますか?
windows - WinINET は再入可能ですか?
WinHTTP は再入可能ではありません ( 1、2 )。WinINET は再入可能ですか?
WinINET と同期 HTTP を行う ActiveX コントロールがあります。ブラウザー (javascript) が非同期 http 要求 (ajax) を起動し、すぐに ActiveX 操作 (同じ IE プロセス) を呼び出す場合、2 つの操作がインターリーブしているように見えます。おそらく同じ API で再入可能であり、WinINET 状態を壊しています。 ajax の clearInterval が誤って 1 回失敗します。ajax には EXT を使用しており、EXT は clearInterval が初めて機能することを前提としています。