HttpWebRequest et-tête Set-Cookie en réponse non analysé (WP7)
J'essaie de l'en-tête "Set-Cookie" ou d'accéder au cookie contenant, mais l'-tête Set-Cookie n'est pas disponible.
Le cookie est dans l'entête de la réponse, mais il n'y est pas dans la demande du client de l'objet.
Je suis de l'inscription de l' ClientHttp
de la pile à l'aide de
bool httpResult = WebRequest.RegisterPrefix("http://", WebRequestCreator.ClientHttp);
Voici la réponse:
HTTP/1.1 200 OK
Content-Type: application/xml; charset=utf-8
Connection: keep-alive
Status: 200
X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 3.0.0.pre4
ETag: "39030a9c5a45a24e485e4d2fb06c6389"
Client-Version: 312, 105, 0, 0
X-Runtime: 44
Content-Length: 1232
Set-Cookie: _CWFServer_session=[This is the session data]; path=/; HttpOnly
Cache-Control: private, max-age=0, must-revalidate
Server: nginx/0.7.67 + Phusion Passenger 3.0.0.pre4 (mod_rails/mod_rack)
<?xml version="1.0" encoding="UTF-8"?>
<user>
...
</user>
Mon rappel code contient quelque chose comme:
var webRequest = (HttpWebRequest)result.AsyncState;
raw = webRequest.EndGetResponse(result) as HttpWebResponse;
foreach (Cookie c in webRequest.CookieContainer.GetCookies(webRequest.RequestUri))
{
Console.WriteLine("Cookie['" + c.Name + "']: " + c.Value);
}
J'ai aussi essayé de regarder les en-têtes de mais en-tête Set-Cookie n'est pas présent dans la réponse.
Toutes les suggestions sur ce que peut être le problème?
Le "Set-Cookie" en-tête semble être absent de mon HttpWebResponses sur WP7.
OriginalL'auteur Brent Dunham | 2010-11-22
Vous devez vous connecter pour publier un commentaire.
Essayer explicitement l'adoption d'un nouveau CookieContainer:
GetData
est un mannequin de la fonction dans ce cas vous pouvez tout simplement créer votre propre fonction de rappel.OriginalL'auteur Den Delimarsky
Vous recevez des cookies HttpOnly:
Pour des raisons de sécurité, ces cookies ne peuvent pas être accessibles à partir de code, mais vous pouvez toujours les utiliser dans vos prochains appels à HttpWebRequest. Plus à ce sujet ici : La lecture des Cookies HttpOnly des en-Têtes de HttpWebResponse dans Windows Phone
Avec WP7.1, j'ai également eu des problèmes de lecture non des cookies HttpOnly. J'ai trouvé qu'ils ne sont pas disponibles si la réponse de la HttpWebRequest vient de la cache. Faire la requête unique avec un nombre aléatoire résolu le problème de cache :
Une fois que vous obtenez la réponse, vous pouvez récupérer le cookie de les en-têtes de réponse:
Je n'ai jamais réussi à obtenir le CookieContainer.GetCookies() la méthode de travail.
OriginalL'auteur Berthier Lemieux
Est les cookies httponly? Si oui, vous ne serez pas en mesure de voir, mais si vous utilisez le même CookieContainer pour votre deuxième demande, la demande doit contenir le cookie, même si votre programme ne sera pas en mesure de le voir.
OriginalL'auteur Curyous
Vous devez modifier les en-têtes de collecte directement. Quelque chose comme ceci:
OriginalL'auteur Matt Lacey