0

asp.net Web ページに投稿して、結果の xml を受信しようとしています。

これが私のコードです:

        Uri url = new Uri("https://www.dmr.nd.gov/oilgas/feeservices/getcpfilesxml.asp");
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
        request.Credentials = nc;
        request.Method = "POST";

        Byte[] postBuffer = Encoding.UTF8.GetBytes("FileNumber=04113");
        request.ContentLength = postBuffer.Length;
        request.ContentType = "text/xml; Charset=UTF-8";

        using (Stream postData = request.GetRequestStream())
        {
            postData.Write(postBuffer, 0, postBuffer.Length);
        }

        HttpWebResponse response = (HttpWebResponse)request.GetResponse();

これを実行すると、次の説明を示す HTTP エラー 401.2 エラーが表示されます。Web ブラウザーが、Web サーバーが構成されていない WWW-Authenticate ヘッダー フィールドを送信しているため、指定した資格情報を使用してこのディレクトリまたはページを表示する権限がありません。受け入れるために。

Web サイトで asp.net ページを使用する場合、これは Fiddler で取得するヘッダー情報です。

HTTP/1.1 200 OK
Date: Tue, 01 May 2012 15:34:44 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Content-Length: 4325
Content-Type: text/xml; Charset=UTF-8
Cache-control: private
Keep-Alive: timeout=15, max=99
Connection: Keep-Alive

この認証情報で:

  • Proxy-Authenticate ヘッダーが存在しません。
  • WWW-Authenticate ヘッダーが存在しません。

アプリケーションを実行しているときに、Fiddler で取得するヘッダー情報は次のとおりです。

HTTP/1.1 200 OK
Date: Tue, 01 May 2012 17:18:04 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Content-Length: 124
Content-Type: text/xml; Charset=UTF-8
Cache-control: private
Set-Cookie: ASPSESSIONIDASADTBCS=JEBNCDNDNEPNLEBIEAFHENJF; path=/
X-Pad: avoid browser bug

この認証情報で:

  • Proxy-Authenticate ヘッダーが存在しません。
  • WWW 認証ヘッダーが存在します: Basic realm="www.dmr.nd.gov"

WWW-Authenticate ヘッダーがプッシュされないようにするにはどうすればよいですか?

4

1 に答える 1

0

さらに調査した結果、認証の問題は実際には私の問題ではないことがわかりました。どうやら GET 操作が必要だったようで、POST 操作を実行していました。

于 2012-05-02T16:50:29.233 に答える