1
0
Amazonセラーセントラルアカウントから注文情報を取得する必要があるため、.NETフォームアプリからHttpWebRequestを使用してアクセスしようとしています。 IEでこのローカルHTMLを開くと、ログインするのがそれほど難しくないことがわかります。
送信して、ログインしたAmazonホームページを正常に戻します。 ただし、これをコードで動作させることはできません。代わりにログインページを常に再取得します。コードは次のとおりです。
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();
私が悪いことをしているというアイデア Amazonが拒否しているIEを介したフォーム送信と比較して、HttpWebRequestの送信について何か異なるものがあるに違いないと思いますが、何がわかりませんか? どんな助けも大歓迎-ありがとう。
1 Answer
0
Amazon Web Servicesを調べましたか?
また、http://mws.amazon.com/cSharpClientLibrary.html [C#library]もあります
それでも自分のやり方でそれを行うことを主張する場合は、リクエストでCookieContainer()を設定してみてください。