私はC#でWebRequestを使用するための初心者です.Postメソッドを使用してApple Online Store(https://secure2.store.apple.com/order/list)で注文を確認しようとしています。HTTP POSTメソッドが失敗する
私は1つの注文をチェックしたいと思って、パラメータ:orderLookup-order-number(注文番号)とorderLookup-order-user-info(私のAppleアカウント)を使ってPOSTメソッドを使うべきであることがわかりました。
POST TO:https://secure1.store.apple.com/us/shop/order/json/single
パラメーター1:orderLookup次数の値:[注文番号]
パラメーター2:orderLookup
は私がでhttps://www.hurl.it/にhttps://secure1.store.apple.com/us/shop/order/json/singleにこれら2つのパラメータを投稿しようとしています-order-user-info値:[Apple ID]
正常に返されました。しかし、私はC#でそれを行うと、私は失敗します。誰でも私の間違いを指摘できますか?私の機能は以下の通りです。
bool TryPostMethodToGetHtmlText(string orderNo, string accountNo, out string htmlText)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://secure1.store.apple.com/us/shop/order/json/single");
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0";
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
var postData = "orderLookup-order-number=" + orderNo;
postData += "&orderLookup-order-user-info=";
postData += HttpUtility.UrlEncode(accountNo);
byte[] postBytes = Encoding.ASCII.GetBytes(postData);
request.ContentLength = postBytes.Length;
using (Stream st = request.GetRequestStream())
{
st.Write(postBytes, 0, postBytes.Length);
}
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode == HttpStatusCode.OK)
{
Stream receiveStream = response.GetResponseStream();
StreamReader readStream = null;
if (response.CharacterSet == null)
{
readStream = new StreamReader(receiveStream);
}
else
{
readStream = new StreamReader(receiveStream, Encoding.GetEncoding(65001));
}
htmlText = readStream.ReadToEnd();
response.Close();
readStream.Close();
return true;
}
htmlText = string.Empty;
return false;
}
私はHttpWebResponseを取得したいときに503エラーが発生しました。ありがとうございました。
503は、サービスが利用できないという応答を示します。 – gypsyCoder
@gypsyCoder返信いただきありがとうございますが、POSTメソッドのパラメータを渡さないと応答が得られます – user
最高の推測は認証です。 Webリクエストは認証されていないため、サーバーはデータへのアクセス権を与えません。認証方法をapiで確認してください。 –