2011-08-01 6 views
3

私はすでに完了したトピックを開始しないことを願っていますが、私はここで適切な答えを見つけられませんでした。 ここで私たちは行く: WebClientを使用してWebページからHTMLコードをダウンロードした後、そのWebClientで新しい要求を送信し、WebPageが私をリダイレクトします。今私はサイトが私を置いたところに今行きたい。WebClient wp7でリダイレクトされたときに最新のUriを取得

WebClientクラス自体には適切なプロパティがありません。レスポンスURIを取得できるようにクラスを書き直そうとしましたが、何とかwp7では機能しません。

私のWebClientがリダイレクトされたURIを取得する方法はありますか?または、自分のクラスを使用するときにアプリケーションがクラッシュする理由を知りたい場合:

ありがとうございます!

答えて

2

HttpWebRequestことができるが、ここでのソリューションです。私はメインページのコンストラクタで要求を開始していますし、私は、コールバックにそれを処理しています

private HttpWebRequest request; 
private bool flagIt = true; 

public MainPage() 
{ 
    InitializeComponent(); 

    request = (HttpWebRequest)WebRequest.Create("http://google.com"); 
    request.BeginGetResponse(new AsyncCallback(GetData), request); 
} 

public void GetData(IAsyncResult result) 
{ 
    HttpWebRequest request = (HttpWebRequest)result.AsyncState; 
    HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(result); 

    Debug.WriteLine(response.ResponseUri.ToString()); 

    if (flagIt) 
    { 
     request = (HttpWebRequest)WebRequest.Create("http://microsoft.com"); 
     request.BeginGetResponse(new AsyncCallback(GetData), request); 
     flagIt = false; 
    } 
} 

:このような何かはあなたの特定の状況のた​​めに働く必要があります。どのように私は最終的な宛先ResponseUriを取得していることに注意してください。

上記のスニペットで行っているように、リダイレクトをブロックしてURLを取得したくない場合は、AllowAutoRedirectを処理する必要はありません。

+0

私の全体のプログラマーがWebクライアントを使用しているので、私はHttpWebRequestを訪ねようとしました(これは、以前はあまりよく知りませんでした)。 よく書かれた答えをありがとう! :) – Constantin

関連する問題