2011-07-29 11 views
0

Webアプリケーションへのアップロードをシミュレートするために構築しようとしているWindowsアプリケーションがあります。このプロジェクトはC#3.0にあります。handle StatusCode == 302 HttpWebrequestを使用している場合 - c#

フィドラーを使用している場合、私は次のよう

/ログインページを見ることができます - 200コード

ははuname/PWD

/ホーム・ページを入力してください - 302コード /ホームページ - 200コード

/アップロードページには、[このページでは、ユーザーがアップロードする最大で2つのファイルを選択することができ、簡単なマルチパートフォームポスト持っ] - 200のコードを

/fileprocessedページ - 302コード /fileprocessedページ - 200コード

私はにWebResponseオブジェクトには、HttpWebRequestを使用する場合、私は

/ログインページを取得 - 200コード

ははuname/PWD

を入力します。 /ホームページ - 200コード

/アップロードページ[このページでは、ユーザーがアップロードする最大で2つのファイルを選択することができ、簡単なマルチパートフォームポスト持っ] - 200コード

/fileprocessedページ - 私は私のコードは、私が302エラーを回避するか、または前記私ができるどのように私はそれを考慮するにはどうすればよい

   Stream requestStream = request.GetRequestStream(); 
       requestStream.Write(bytes, 0, bytes.Length); 
       requestStream.Write(buffer, 0, buffer.Length); 
       FileStream stream2 = new FileStream(filePath, FileMode.Open, FileAccess.Read); 
       byte[] buffer = new byte[0x1000]; 
       int count = 0; 
       while ((count = stream2.Read(buffer, 0, buffer.Length)) != 0) 
       { 
        requestStream.Write(buffer, 0, count); 
       } 
       bytes = Encoding.ASCII.GetBytes("\r\n--" + str2 + "--\r\n"); 
       requestStream.Write(bytes, 0, bytes.Length); 
       requestStream.Close(); 
       stream.Close(); 
       HttpWebResponse response = request.GetResponse() as HttpWebResponse; 
       if(response.StatusCode == HttpStatusCode.Found) 
       { 
        string newURL = response.Headers["Location"]; 
       } 

ある真

にSetAutoRedirectを持っている302のコード

答えて

1

似たようなケースがありました.200(FiddleまたはFirebug:netタブのように)が返されると予想されたときに302個のステータスコードを取得しました。私はユーザーエージェントの仕様をHttpWebResponseに与えることでこの問題を解決することができました。

request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0) Gecko/20100101 Firefox/4.0"; 
関連する問題