当我尝试连接到服务器时,我的代码中发生了奇怪的事情......使用授权凭据,响应返回中的状态码是“OK”(我对此感到满意)但是当我使用未经授权的凭据登录时,状态码响应应该是“未经授权”相反,我得到“远程服务器返回错误:未找到”。为什么应用程序崩溃?我只更改了凭据!感谢您的帮助
//Request
public void ConnexionNT(string password,string user)
{
try
{
HttpWebRequest request= (HttpWebRequest)HttpWebRequest.Create(URL_CONNEXION);
request.Method = "GET";
request.Credentials = new NetworkCredential(user, password, domain);
request.CookieContainer = _cookiecontainer;
request.BeginGetResponse(new AsyncCallback(GetResponse),request);
}
catch(HttpRequestException)
{
MessageBox.Show("Un problème de connexion avec le serveur a eu lieu.", "Echec Authentification", MessageBoxButton.OK);
}
catch (Exception )
{
MessageBox.Show("Une erreur a eu lieu","Echec Authentification", MessageBoxButton.OK);
}
}
//Response
private void GetResponse(IAsyncResult MyresponseAsync)
{
HttpWebRequest request = (HttpWebRequest)MyresponseAsync.AsyncState;
if (request != null)
{
try
{
//CRASH HERE// HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(MyresponseAsync);
if(response.StatusCode==HttpStatusCode.OK)//l'authentification a réussi
{
if (event_Authorized != null)
event_Authorized.Invoke();
if (response.Cookies != null && response.Cookies.Count>0)//on récupere le cookie de navigation
{
App._cookiecollection = response.Cookies;
}
}
else if (response.StatusCode == HttpStatusCode.Unauthorized)//l'authentification a échoué
{
if (event_Unauthorized != null)
event_Unauthorized.Invoke();
}
else if (response.StatusCode == HttpStatusCode.NotFound)//Erreur serveur
{
}
}
catch (WebException)
{
MessageBox.Show("Erreur de connexion", "erreur getresponse", MessageBoxButton.OK);
}
}
}