Je suis sous .net/CLI, j'utilise la fonction ci-après pour récupérer le code d'une page Web, le problème c'est que j'aimerai aussi récupérer le message complet du serveur en cas d'erreur notamment lors des "erreurs 500"/ASP.
Merci.
<code>
using System::Net::HttpWebRequest;
using System::Net::WebRequest;
using System::Net::HttpWebResponse;
using System::Net::WebResponse;
using System::IO::StreamReader;
using System::Net::WebException;
using System::Net::WebExceptionStatus;
HttpWebResponse ^HttpWResponse;
StreamReader ^sr;
String ^rep;
try
{
HttpWebRequest ^ HttpWRequest = safe_cast<HttpWebRequest ^>(WebRequest::Create(url));
//HttpWRequest->CachePolicy = gcnew System::Net::Cache::HttpRequestCachePolicy(System::Net::Cache::HttpRequestCacheLevel::Reload);
HttpWRequest->Timeout = 10000;
HttpWRequest->Headers->Add("TE", "deflate,gzip;q=0.3");
HttpWRequest->KeepAlive = false;
HttpWRequest->UserAgent = "Mozilla 5.2";
HttpWResponse = safe_cast<HttpWebResponse^>(HttpWRequest->GetResponse());
sr = gcnew StreamReader(HttpWResponse->GetResponseStream());
return sr->ReadToEnd();
}
catch (WebException ^ex)
{
if (ex->Status == WebExceptionStatus::ProtocolError) {
HttpWebResponse ^response = safe_cast<HttpWebResponse^>(ex->Response) ;
rep = "status code:" + ((HttpWebResponse^)(ex->Response) )->StatusCode;
rep = rep+ " Statusdescription:" + response->StatusDescription;
}
return rep + ex->Message + ex->StackTrace;
}
finally
{
if (HttpWResponse != nullptr)
HttpWResponse->Close();
if (sr != nullptr)
sr->Close();
}
}
</code>