POST à la Page Renvoyée Par WebResponse
-
21-09-2019 - |
Question
Je suis à l'aide de WebRequest pour POSTER un signin page qui me redirige vers la page j'ai vraiment besoin de poster.
Comment puis-je poster sur cette page que j'ai été redirigé vers?Voici le Code:
*****NOUVEAUTÉS*****
Voici ce qui se passe après, je post à la page de connexion:OBTENEZ de l'/config/validate?.src=flickr&.pc=5134&.scrumb=6l14Ni2Pz3j&.pd=c%3DE0.GahOp2e4MjkX.5l2HgAoLkpmyPvccpVM-&.intl=us&.done=http%3A%2F%2Fwww.flickr.com%2Fsignin%2Fyahoo%2F%3Fredir%3D%252Fpeople%252Flindieb68%252Frelationship%252F
GET /signin/yahoo/?redir=%2Fpeople%2Flindieb68%2Frelationship%
GET /cookie_check.gne?pass=%2Fpeople%2Flindieb68%2Frelationship%2F&fail=register_cookies.dnb
GET /personnes/lindieb68/relation/
Le dernier est là que j'ai besoin de cliquer sur un bouton.Devrais-je passer par toutes ces GETs et de recueillir des cookies?Je vais essayer après le dîner, et vous laisser savoir.Je sens que cela va fonctionner.Je vais mettre à jour un petit peu.
private CookieContainer LoginYahoo(CookieContainer cookies)
{
string appURL = "https://login.yahoo.com/config/login?.src=flickr&.pc=5134&.scrumb=0&.pd=c%3DE0.GahOp2e4MjkX.5l2HgAoLkpmyPvccpVM-&.intl=us&.done=https%3A%2F%2Flogin.yahoo.com%2Fconfig%2Fvalidate%3F.src%3Dflickr%26.pc%3D5134%26.scrumb%3D0%26.pd%3Dc%253DE0.GahOp2e4MjkX.5l2HgAoLkpmyPvccpVM-%26.intl%3Dus%26.done%3Dhttp%253A%252F%252Fwww.flickr.com%252Fsignin%252Fyahoo%252F%253Fredir%253D%25252Fpeople%25252Flindieb68%25252Frelationship%25252F&rl=1";
string strPostData = ".tries=1&.src=flickr&.md5=&.hash=&.js=&.last=&promo=&.intl=us&.bypass=&.partner=&.u=0delt5h5l4df0&.v=0&.challenge=3DZF0DFFqdE0m.9MWnCq6LjUZ9gV&.yplus=&.emailCode=&pkg=&stepid=&.ev=&hasMsgr=1&.chkP=Y&.done=https%3A%2F%2Flogin.yahoo.com%2Fconfig%2Fvalidate%3F.src%3Dflickr%26.pc%3D5134%26.scrumb%3D0%26.pd%3Dc%253DE0.GahOp2e4MjkX.5l2HgAoLkpmyPvccpVM-%26.intl%3Dus%26.done%3Dhttp%253A%252F%252Fwww.flickr.com%252Fsignin%252Fyahoo%252F%253Fredir%253D%25252Fpeople%25252Flindieb68%25252Frelationship%25252F&.pd=flickr_ver%3D0%26c%3DE0.GahOp2e4MjkX.5l2HgAoLkpmyPvccpVM-%26ivt%3D%26sg%3D&login=loginName&passwd=Password&.persistent=y&.save=Sign+In";
// Setup the http request.
HttpWebRequest wrWebRequest = WebRequest.Create(appURL) as
HttpWebRequest;
wrWebRequest.Method = "POST";
wrWebRequest.ContentLength = strPostData.Length;
wrWebRequest.ContentType = "application/x-www-form-urlencoded";
CookieContainer cookieContainer = cookies;
wrWebRequest.CookieContainer = cookieContainer;
// Post to the login form.
StreamWriter swRequestWriter = new
StreamWriter(wrWebRequest.GetRequestStream());
swRequestWriter.Write(strPostData);
swRequestWriter.Close();
// Get the response.
HttpWebResponse hwrWebResponse = (HttpWebResponse)wrWebRequest.GetResponse();
// Read the response
StreamReader srResponseReader = new
StreamReader(hwrWebResponse.GetResponseStream());
string strResponseData = srResponseReader.ReadToEnd();
srResponseReader.Close();
//YOU ARE NOW LOGGED IN TO YAHOO!
//NEED TO POST AGAIN TO WHAT hwrWebResponse RETURNS
ShowInBrowser(strResponseData);
return cookieContainer;
}
La solution
Recueillir tous les cookies de la précédente (login) réponses au moins l'un d'entre eux sera le témoin qui raconte Yahoo que vous vous êtes déjà connecté.Alors inclure les cookies avec votre requête post vers la page de destination, ou de toute autre interaction avec Yahoo.
Edit: Voir cet article complet d'un exemple de code pour la collecte et la ré-utilisation des cookies.
http://blogs.msdn.com/dgorti/archive/2005/08/16/452347.aspx
Autres conseils
Ensemble AllowAutoRedirect de vrai sur votre HttpWebREquest instance.
Cela devient compliqué.
La réponse semble être de Recueillir les Cookies.Pour une raison que j'échoue à le faire bien.