1


0

.NET HttpWebRequestを使用してAmazonセラーセントラルにログインします

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()を設定してみてください。