J'ai besoin de récupérer les informations de commande de notre compte central Amazon vendeur, donc j'essaie d'y accéder en utilisant HttpWebRequest à partir d'une application .NET forms. Je sais qu'il est pas difficile de journaliser en car si j'ouvre ce code HTML local dans IE:Connectez-vous au vendeur central Amazon en utilisant .NET HttpWebRequest
<html>
<body>
<form action="https://sellercentral.amazon.co.uk/gp/sign-in/sign-in.html/ref=ag_login_lgin_myo" method="post" name="signin">
<input type="hidden" name="protocol" value="https" />
<input type="hidden" name="action" value="sign-in" />
<input type="text" name="email" value="[email protected]"/>
<input type="password" name="password" value="xxxxxx"/>
<input type="submit" name="sign-in-button"/>
</form>
</body>
</html>
et soumettre je reçois avec succès ouvert une session Amazon page d'accueil de retour. Cependant, je ne peux pas obtenir ce travail via le code, je reçois toujours la page de connexion à nouveau à la place, voici le code:
string sUrl = "https://sellercentral.amazon.co.uk/gp/sign-in/sign-in.html/ref=ag_login_lgin_myo";
string sPostData = "";
sPostData += "protocol=https";
sPostData += "&action=sign-in";
sPostData += "&[email protected]";
sPostData += "&password=xxxxxx";
sPostData += "&sign-in-button=";
// initialise request object
HttpWebRequest oRequest = (HttpWebRequest)WebRequest.Create(sUrl);
oRequest.Timeout = 30000;
// set fake headers
oRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1)";
// set the method & content type
oRequest.Method = "POST";
oRequest.ContentType = "application/x-www-form-urlencoded";
// prepare post data
ASCIIEncoding encoding = new ASCIIEncoding();
byte[] byteArr = encoding.GetBytes(sPostData);
// write to request
oRequest.ContentLength = byteArr.Length;
Stream reqStream = oRequest.GetRequestStream();
reqStream.Write(byteArr, 0, byteArr.Length);
reqStream.Close();
// fetch the page
HttpWebResponse oResponse = (HttpWebResponse)oRequest.GetResponse();
// convert response to a string
StreamReader sr = new StreamReader(oResponse.GetResponseStream());
string responseHTML = sr.ReadToEnd().ToLower();
sr.Close();
Toutes les idées que je fais mal? Je suppose qu'il doit y avoir quelque chose de différent dans ma soumission HttpWebRequest par rapport au formulaire de soumission via IE que Amazon rejette mais je ne peux pas comprendre quoi? Toute aide très appréciée - merci.
Ancienne question, mais toujours pertinente. 'AWS' n'est disponible que pour les vendeurs professionnels (avec des frais mensuels) et n'inclut pas toutes les informations sur le vendeur (seulement les informations dont vous pourriez avoir besoin). Votre réponse de cookie est plus appropriée. –