0

リモートWebサーバーとの通信を必要とするDelphiアプリケーションを作成しました。INTERNET_OPEN_TYPE_PRECONFIGフラグをInternetOpen関数に渡して、アプリでのWinINet関数の使用を初期化し、そうすることで、アプリがレジストリからユーザーのインターネット構成を取得します。

  NetHandle := InternetOpen('WebTool', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
  if Assigned(NetHandle) then
  begin
    try
      hConnect := InternetConnect(NetHandle, PChar(ServerName), ServerPort,
                      nil, nil, INTERNET_SERVICE_HTTP, 0, 1);
      if Assigned(hConnect) then
      begin
        try
          // Open the request
          hRequest := HttpOpenRequest(hConnect, PChar('POST'),
                          PChar(ServerScript), nil, nil, nil,
                          HTTPOpenRequestFlags, 0);
          if Assigned(hRequest) then
          begin

おそらく私の無知のために、これにより、直接接続かプロキシ経由かを問わず、ユーザーの特定のインターネット設定を使用してリモートWebサーバーとの通信が可能になると信じていました。それは確かに私の会社のプロキシサーバーを介して機能します。

しかし、私は今、上記が彼にアクセスを許可していない1人の顧客に遭遇しました。代わりに、「プロキシ認証が必要」(HTTPステータスコード407)が表示されます。

これは私のアプリが処理する必要があるものですか(たとえば、プロキシ認証の詳細を入力し、HTTPリクエストでそれらを渡すためのフォームを提供します)?この情報を自動的に取得する方法はありますか?

それとも、これは単に、お客様のIT部門が簡単に解決できる構成の問題に起因するのでしょうか。

任意のポインタをいただければ幸いです。

4

1 に答える 1

1

プロキシがサポートする認証方法によっては、認証を処理する必要がある場合があります(407応答で通知されます)。http://msdn.microsoft.com/en-us/library/aa384220(VS.85).aspxを参照してください

于 2011-05-16T21:36:33.873 に答える