問題タブ [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.
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:以前のエラーから回復できません;コンパイルを停止します
何かアドバイス?
winapi - WinINET を使用してダミー ユーザー用の堅牢な HTTP 接続を作成する
IE互換のプロキシ動作を利用したいので、WininetファミリAPIを使用して、Windows上のインターネットから単純なファイルをダウンロードするプログラムを作成しています。ご存知のように、現在の IE にはいくつかのプロキシ設定があります。自動検出 (WPAD)、自動構成 (PAC)、手動で単一の URL、プロトコルごとのプロキシ サーバー、ソックス、ダイレクトなどです。ほとんどのユーザーにとって、「直接ダウンロード」 " 正常に動作します; ただし、一部のユーザー (特にファイアウォール/NAT の背後にいるユーザー) は、接続を確立するときに常に特別なプロキシ設定が必要です。
これらすべてのケースを処理するコードを書くのは大変なので、WinINETが役に立てば幸いInternetOpen (INTERNET_OPEN_TYPE_PRECONFIG)
です。ほとんどのユーザーには当てはまりますが、それでも接続障害を訴えるユーザーがいます。これらのユーザーは非常に特殊なネットワーク環境 (たとえば、プロキシにユーザー名/パスワード認証が必要) を持っている可能性があり、直接接続は機能しません。
時々、ダミーのユーザーが間違った設定をしていたので、wininet に「すべての」可能なプロキシ設定を試してもらいたいと思いました。残念ながら、INTERNET_OPEN_TYPE_PRECONFIG
「可能なすべてのプロキシ設定」ではなく、ユーザーが構成したもののみが試行されます。
だから私の質問は、ダミーユーザー (つまり、システムの構成方法を理解していない) のすべての http 接続 (特にプロキシ構成) を回避する最も強力な機能を備えたプログラムを作成するにはどうすればよいかということです。プロキシを気にせずに HTTP 接続を確立するための推奨される方法はありますか? (つまり、すべての可能なプロキシ設定を試す「スーパー」接続ソルバー)、またはすべてのプロキシ設定を有効にして接続を作成するように WinINET に指示する方法がある場合は?
windows-7-x64 - WinHTTP と Windows 7 x64: エラー
WinHTTP を使用するアプリケーションがあり、Windows 7 (64 ビット; 32 ビット バージョンはまだテストしていない) で WinHttpOpen の呼び出しが失敗し、戻ります
「グループまたはリソースは、要求された操作を実行するのに適切な状態ではありません。」
これはエラー コード 5023 に対応し、管理者と標準ユーザーで発生します。この呼び出しを含む C++ DLL は、Windows XP Professional システムで Visual Studio 2008 (32 ビット) を使用してコンパイルされました。
Outlook 2007 以外の場合、これは VM へのクリーン インストールです。
ありがとう!
file - WinHTTP と LotusScript を使用して TXT または CSV ファイルをアップロードする
質問: 1) 「境界」を指定し、ファイル コンテンツを TXT ファイル アップロードとして正しく送信する方法を教えてください。2) この境界コンテンツの改行を指定する方法は?
よろしくお願いします!
c++ - WinInet のプロキシ設定をすばやく (ネットワークに依存せずに) 取得する方法
Internet Explorer のプロキシ設定を C++ からすばやく取得するにはどうすればよいですか?
Windows 関数WinHTTPGetIEProxyConfigForCurrentUser()
は、まさに私が望むものを提供してくれます。
問題WinHTTPGetIEProxyConfigForCurrentUser()
は、一部のユーザーのシステム (Windows 7 を実行している) で実行速度が許容できないほど遅いことです。これらのユーザーの場合、関数が完了するまでに数秒かかります。ネットワーク ケーブルを抜くと、関数が高速で返される (同じ結果になる) ため、ネットワークに依存しているようです。
では、この遅いネットワークへの依存なしにシステム プロキシ設定を取得するにはどうすればよいでしょうか?
ありがとう!
c++ - C++ で文字列を LPVOID および LPCWSTR に変換する
私は c++ で winHTTP API を使用しており、アプリケーションのラッパー クラスの作成を開始しました。簡単にするために、文字列パラメーターを取り、それらを winHTTP 呼び出しで使用できる関数をいくつか用意しました。ただし、これらの多くは、データが LPVOID または LPCWSTR である必要があります。ラッパー関数が LPVOID または LPCWSTR パラメーターを取るようにすることですべてを機能させることができますが、文字列パラメーターを使用することをお勧めします。では、スティングから LPVOID/LPCWSTR に変換する方法はありますか?
私の試み(以下)はちょうどぎこちないものを生み出しました
どんな助けでも大歓迎です
ありがとう
winhttp - 「www.google.com」の SetCredentials の後でも IWinHttpRequest がステータス コード 407 で失敗する
私のシステム ブラウザ (IE) はプロキシ認証されています。IWinHttpRequest を使用して「www.google.com」をダウンロードしようとしましたが、「www.google.com」の SetCredentials(...) を使用してユーザー名とパスワードを設定した後でも、ステータス コード 407 (プロキシ認証が必要) で失敗します。応答テキストに「キャッシュ アクセスが拒否されました」が含まれています。これを解決するには?
c# - C# および C++ でリダイレクト情報を取得する
私は何を間違っていますか?ユーザーの認証に使用するサーバーからリダイレクト情報を取得しようとしています。これは私の C# コードでは問題なく機能しますが、C++ コードを機能させることができません。
これが実際の C# コードです。
これらの情報を使用して、さらなる認証を行います。すべて順調。
私は今、C++ コードで同じことをしたいと思っています。しかし、そのコードは機能しません。
だからここにあります:
問題は、Location: https://myAuthServer.com/centrallogin-2.2/error.jsp
適切なリダイレクトとセッションが得られないことです。request.ContentType
適切に設定しないと、C# コードでもこのエラーが発生することがわかっています。しかし、C++ コードで Content-Type ヘッダーを設定しました。だから私は自分が何を間違っているのか分かりません。
さらにアイデアはありますか?
編集:
OK、WinHTTP API でも試しました。これが私のコードです:
したがって、リダイレクト URL とセッション ID は chData にある必要があります。しかし、やはり結果は間違っています。Wiresharkも試してみました。これはすべて HTTPS であるため、多くを読み取ることはできません。比較できるのは、フレーム数などだけです。WinHTTP を使用すると、Wireshark ログは似ています。したがって、これはより良いアプローチだと思います。
さらにアイデアはありますか?
ssl - WinHTTP で CONNECT および POST を介してユーザー エージェントを送信しますか?
WinHttp を使用して安全なサイトに POST しようとしていますが、CONNECT と共に User-Agent ヘッダーが送信されないという問題が発生しています。
MSDN のコード サンプルを少し変更して使用しています。
これが行うことは、192.168.1.2:3199 で認証されたプロキシを介してサーバーに接続し、POST を作成することです。これは機能しますが、プロキシ ログを調べると、ユーザー エージェント文字列 ("WinHTTP AutoProxy Sample/1.0") が CONNECT の一部として送信されていません。ただし、POST の一部として送信されます。
このコードを変更して、CONNECT と POST の両方で User-Agent ヘッダーを送信する方法を教えてください。
編集して追加:この問題は Windows 7 でのみ確認されています。Windows Vista ボックスで同じコードを実行すると、CONNECT で User-Agent ヘッダーが送信されていることがわかります。
c++ - WinInetおよびWinHTTPを使用してサーバーを呼び出す
WinInetAPIを使用すると正常に機能するリクエストがあります。WinHTTP APIを使用してそのリクエストを作成したいと思います。これは、プロジェクトですでに使用しており、単純に優れているためです。私のリクエストはJSONの呼び出しに使用されます。これを呼び出す前に、私はすでに認証しました。認証時に、Cookieを介して送信するSessionIDを取得します。
これが私の動作するWinInetコードです。
そこで、WinHTTPAPIを使用して同じことを実行したいと思います。これが私が今持っているものです:
後者の呼び出しでは、常に401を受け取りますが、最初の方法と同じように200を受け取る必要があります。INTERNET_FLAG_NO_COOKIES
また、フラグを指定しないと、最初の呼び出しで401が返されることもわかりました。したがって、Cookieヘッダーの何かが間違っているのではないかと思います。誰かが私が間違っていることを見ますか?または、2つの方法の違いは何ですか?
どうも...