[C#] uzyskanie adresu strony, do którego zostaje przekierowywany WebClient

0

Witam,

   Czy jest możliwość uzyskania adresu strony, do którego zostaje przekierowywany WebClient? Używam WebClient.UploadValues(add,data), w odpowiedzi dostaje zawartość przekierowanej strony a potrzebuje adresu.
0

Chodzi Ci chyba o właściwość WebClient.BaseAddress.

1
Autor napisał(a):

Witam,

   Czy jest możliwość uzyskania adresu strony, do którego zostaje przekierowywany WebClient? Używam WebClient.UploadValues(add,data), w odpowiedzi dostaje zawartość przekierowanej strony a potrzebuje adresu.

Jest taka możliwość.
Aby uzyskać adres, na który program został przekierowany, należy skorzystać z tego kodu, który przesłania istniejącą już metodę GetWebResponse w klasie WebClient. Aby to zrobić należy utworzyć nową klasę, dziedziczącą po WebClient i dodać przesłoniętą metodę:

protected override WebResponse GetWebResponse(WebRequest request)
        {
            WebResponse webResponse = null;
            try
            {
                webResponse = base.GetWebResponse(request);
            }
            catch (Exception ex)
            {
                
            }

            if (webResponse != null)
            {
                responseUri = webResponse.ResponseUri; // zapisz URI, na który zostałeś przekierowany
            }

            return webResponse;
        }

Należy także utworzyć nową właściwość w klasie:

public Uri responseUri { get; set; }

Oczywiście, ten kod jest brzydki (catch (Exception ex) {}), ale pokazuje metodę, która działa.

1 użytkowników online, w tym zalogowanych: 0, gości: 1