WebClient ne redirige pas automatiquement
Lors de l'enregistrement de la procédure de connexion à l'aide de Firebug, je vois que c'est comme cela
POST //The normal post request
GET //Automatically made after the login
GET //Automatically made after the login
GET //Automatically made after the login
Lors d'une requête post à l'aide de mon code ci-dessous, il n'a pas fait l'automatique des demandes que les navigateurs est en train de faire.
MON WebClient Gestionnaire
using System;
using System.Net;
namespace Test
{
class HttpHandler : WebClient
{
private CookieContainer _mContainer = new CookieContainer();
protected override WebRequest GetWebRequest(Uri address)
{
var request = base.GetWebRequest(address);
if (request is HttpWebRequest)
{
(request as HttpWebRequest).CookieContainer = _mContainer;
}
return request;
}
protected override WebResponse GetWebResponse(WebRequest request)
{
var response = base.GetWebResponse(request);
if (response is HttpWebResponse)
_mContainer.Add((response as HttpWebResponse).Cookies);
return response;
}
public void ClearCookies()
{
_mContainer = new CookieContainer();
}
}
}
À L'Aide De Code
private static async Task<byte[]> LoginAsync(string username, string password)
{
var postData = new NameValueCollection();
var uri = new Uri(string.Format("http://{0}/", ServerName));
postData.Add("name", username);
postData.Add("password", password);
return await HttpHandler.UploadValuesTaskAsync(uri, postData);
}
En essayant de suivre le lien de ma candidature, c'est seulement en faisant la Demande POST et pas le reste des requêtes GET. [QUI SONT FAITES AUTOMATIQUEMENT DANS LE NAVIGATEUR]
source d'informationauteur Roman Ratskey | 2012-10-23
Vous devez vous connecter pour publier un commentaire.
Qui ne devrait pas être surprenant, étant donné que
HttpWebRequest
n'est pas un navigateur. Si vous avez besoin d'effectuer ces redirections, puis vérifier le HttpWebResponse.StatusCodeet de faire une autre demande si c'est un code de redirection dans les 300. Remarque à partir du lien sous 10.3 Redirection 3xx:Essayez d'ajouter
droit en vertu de la
Il a résolu un problème pour moi, même que autoredirect est censé être activé par défaut.