Ich hatte eine WebClient
, die eine URL anforderte. Ich wollte die gleiche Sache in einer UWP-Anwendung tun, und ich sah, dass ich Microsoft.Net.Http
und HttpClient
verwenden importieren musste.HttpRequestException bei Verwendung von HttpClient?
So ersetzte ich dies (das in einer Klassenbibliothek war):
WebClient client = new WebClient();
client.Headers[HttpRequestHeader.UserAgent] = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2";
string content = client.DownloadString(url);
Durch diese in einer PCL-Bibliothek:
HttpClient client = new HttpClient();
string content = await client.GetStringAsync(url);
Und jetzt habe ich diese Ausnahme:
System.Net.Http.HttpRequestException occurred
HResult=-2147012867
Message=An error occurred while sending the request.
Source=System.Net.Http
StackTrace:
at System.Net.Http.HttpClientHandler.<SendAsync>d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at XXXX.YYYY.MHDJ.ZZZZ.<ParsePage>d__4.MoveNext()
InnerException:
ErrorCode=-2147012867
HResult=-2147012867
Message=Le texte associé à ce code d’erreur est introuvable.
Impossible d'établir une connexion avec le serveur
Source=""
StackTrace:
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Net.Http.HttpHandlerToFilter.<SendAsync>d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Net.Http.HttpClientHandler.<SendAsync>d__1.MoveNext()
InnerException:
Ich glaube nicht, das Problem ist die Header, also was ist?
ich nun den Useragent hinzugefügt haben, und gleichen Fehler habe ich versucht, 10 Mal hintereinander und immer noch nicht funktioniert. Für die Rechte habe ich nur "Internet (Client)" hinzugefügt, ich weiß nicht, ob es noch etwas gibt, das ich hinzufügen sollte? – J4N
Wenn die URL, die Sie anrufen, eine interne Domäne ist, müssen Sie auch die Funktion Private Netzwerke überprüfen. –
@ J4N: War der gleiche Test mit 'WebClient'? –