Readdy Write  
0,00 €
Your View Money
Views: Count
Self 20% 0
Your Content 60% 0

Users by Links 0
u1*(Content+Views) 10% 0
Follow-Follower 0
s2*(Income) 5% 0

Count
Followers 0
Login Register as User

UWP WebRequest: Problem beim lesen einer Webseite bei Weiterleitungen

02.07.2018 (👁9852)


Unter Windows kann man mit zwei Weisen auf eine Webseite zugreifen.

Es gibt den Àlteren WebRequest und das neuere HttpClient.

Unter WPF verwendet man oft das WebRequest, weil dieser Zugriff auch ftp-Seiten erlaubt. Beim Wechsel von WPF auf UWP hÀngt sich der WebRequest aber leider sehr oft auf und bereitet oft Probleme.

1) UWP-Webrequest: Synchroner Zugriff

Fehlerbeschreibung:

Beim Zugriff auf eine Webseite mit WebRequest erscheint im Synchronen Modus die Fehlermeldung:

The operation was canceled

Ursache:

ZunĂ€chst unbekannt
 allerdings zeigt es wahrscheinlich auf eine Weiterleitung der Webseite hin. Wenn zum Beispiel eine URL Adresse mit dem / endet, leiten die Webseiten die Seite aus lesbarkeitsgrĂŒnden intern um.

Name

Value

Type

◱

ex

{System.OperationCanceledException: The operation was canceled. at System.Net.HttpWebRequest.GetResponse() at robot_ComputerFutures.MainPage.<Web_Get_HtmlDocument>d__6.MoveNext()}

System.Exception {System.OperationCanceledException}

▶ CancellationToken

IsCancellationRequested = true

System.Threading.CancellationToken

▶ Data

{System.Collections.ListDictionaryInternal}

System.Collections.IDictionary {System.Collections.ListDictionaryInternal}

HResult

-2146233029

int

HelpLink

null

string

▶ InnerException

null

System.Exception

Message

"The operation was canceled."

string

Source

"System.Net.Requests"

string

StackTrace

" at System.Net.HttpWebRequest.GetResponse()\r\n at robot_ComputerFutures.MainPage.<Web_Get_HtmlDocument>d__6.MoveNext()"

string

▶ TargetSite

{System.Net.WebResponse GetResponse()}

System.Reflection.MethodBase {System.Reflection.RuntimeMethodInfo}

 

2) UWP-Webrequest: Asynchroner Zugriff

objRequest.GetResponseAsync

Beim Verwendern der Asynchronen Methode springt der Cursor zwischen beiden Aufrufen im Loop und behindert die Anwendung.

//* get the HTML Document of a website-URL      

try

{

    //-< init >-

    //< WebRequest and Response >

    WebRequest objRequest = WebRequest.Create("https://www.computerfutures.com/de/job/Project-Manager-39");

    objRequest.Timeout = 15;

    WebResponse objResponse = null;

    try

    {

        objResponse = await objRequest.GetResponseAsync(); 

    }

    catch (Exception ex)

    {

        clsSys.show_Message(ex.Message);

        return null;                    

    }

    

    //</ WebRequest and Response >

 

    //< Stream and Reader >

    Stream objDataStream = objResponse.GetResponseStream();

    StreamReader TextReader = new StreamReader(objDataStream);

    //</ Stream and Reader >

    //-</ init >-

 

 

 

Problem:

3) UWP: webRequest-> Einstellung Redirect

AllowAutoRedirect in UWP

Ursache schein wohl zu sein, dass die Webseite einen Redirect macht.j

Allerdings hat der WebRequest in UWP keine Einstellung mehr fĂŒr das Verhalten von Redirkt

//< WebRequest and Response >

sURL = "https://www.computerfutures.com/de/job/Project-Manager-39";

WebRequest objRequest = WebRequest.Create(sURL);

objRequest.AllowAutoRedirect = true; //*not in UWP

objRequest.Timeout = 15;

WebResponse objResponse = null;

try

{

    objResponse = await objRequest.GetResponseAsync(); 

}

catch (Exception ex)

{

    clsSys.show_Message(ex.Message);

    return null;                    

}

UWP: Universal Windows Platform

WPF: Windows PrÀsentation Foundation