2011-01-06 12 views
0

親愛なるすべて、 HttpWebRequestクラスでWeb画像を取得しようとすると403の禁止メッセージが表示されました。 私のコードは以下の通りです。どうすれば解決できますか?ありがとう!403 HttpWebRequestクラスで禁止されています

public void getWebData() 
    { 
     string url = "http://www.bijint.com/hokkaido/tokei_images/HHMM.jpg"; 
     /***** "HH" stands for hour of current time and "MM" for minute *****/ 
     HttpWebRequest httpWebRequest = null; 
     HttpWebResponse httpWebResponse = null; 
     BinaryReader binaryReader = null; 
     FileStream outputFile = null; 
     BinaryWriter binaryWriter = null; 
     StreamReader streamReader = null; 

     try 
     { 
      httpWebRequest = (HttpWebRequest)WebRequest.Create(url); 
      httpWebRequest.Method = "POST"; 
      httpWebRequest.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1 (.NET CLR 3.5.30729)"; 
      httpWebRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; 

      httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse(); 

      streamReader = new StreamReader(httpWebResponse.GetResponseStream(), Encoding.UTF8); 
      string httpContent = streamReader.ReadToEnd(); 
      listBox1.Items.Add(httpContent); 
     } 
     catch (WebException wex) 
     { 
      listBox1.Items.Add("Exception occurred on request: " + wex.Message); 
      if (wex.Status == WebExceptionStatus.ProtocolError) 
       httpWebResponse = (HttpWebResponse)wex.Response; 
     } 
     finally 
     { 
      if (httpWebResponse != null) 
       httpWebResponse.Close(); 
      if (binaryReader != null) 
       binaryReader.Close(); 
      if (streamReader != null) 
       streamReader.Close(); 
      if (outputFile != null) 
       outputFile.Close(); 
      if (binaryWriter != null) 
       binaryWriter.Close(); 
     } 
    } 
+0

VinayCはほとんど正しいですが、(匿名アクセスを許可するか、実装できる資格情報を提供することによって)解決するには、コンテンツプロバイダを参照する必要があります。 – annakata

答えて

1

ブラウザから呼び出されたときに言ったURL http://www.bijint.com/hokkaido/tokei_images/HHMM.jpgは同じ403エラーを与える - それは単に言ったリソースがWebサーバ上に固定されていることを意味し、1はそれにアクセスするために、いくつかの資格情報を提供する必要があります。この情報を取得する必要があります(どの種類の資格情報が必要ですか)。次に、同じ資格情報を渡すようにコードを更新します。

+1

いいえ、あなたは401-403を考えていますが、彼の信用証明書はうまくいかないことを意味します。もちろん、サーバーは常にこれを誤解している可能性があります.OPコードの資格情報が不足していると、実用的な解決策は見つけるだけです明示的な資格情報。 – annakata

+0

@annakata、それを指摘してくれてありがとう。 – VinayC

+0

firefoxでは、「http://www.bijint.com/hokkaido/」を最初に訪問した場合、「http://www.bijint.com/hokkaido/tokei_images/HHMM.jpg」にアクセスできます。ちなみに、 "HH"は現時点の時間を表し、 "MM"は分 –

関連する問題