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.
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.
Chodzi Ci chyba o właściwość WebClient.BaseAddress.
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.