C# webRequest'i kullanmaya yeni başlıyorum ve Apple Online Store'daki (https://secure2.store.apple.com/order/list) siparişlerimi kontrol etmek için POST yöntemini kullanmaya çalışıyorum.HTTP POST yöntemi başarısız oluyor
Tek bir siparişi kontrol etmek istiyorum ve POST Yöntemini Parametrelerle kullanmam gerektiğini buldu: orderLookup-order-number (Sipariş No) ve orderLookup-order-user-info (Apple Hesabı).
POST İÇİN: https://secure1.store.apple.com/us/shop/order/json/single
1. parametre: orderLookup sipariş numarası değeri: [Sipariş No]
2. parametre: orderLookup
Ben tarafından https://www.hurl.it/ üzerinde https://secure1.store.apple.com/us/shop/order/json/single bu 2 parametre göndermek için çalıştık -order-user-info değeri: [Apple ID]
ve başarıyla geri döndü. Ancak C# 'da yaptığımda başarısız olurum. Hatalarımı işaret eden var mı lütfen? Benim işlevim aşağıdaki gibidir. Ben HttpWebResponse almak istediğinde
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;
}
Ben 503 hata var. Teşekkür ederim.
503, servisin kullanılmadığı yanıtı belirtir. – gypsyCoder
@gypsyCoder Cevabınız için teşekkür ederiz, ancak POST Yöntemi – user
için herhangi bir parametre iletmediğimde yanıt alabiliyorum En iyi tahmin kimlik doğrulamasıdır. Web adresi kimlik doğrulaması yapılmadığından sunucu size verilere erişemez. Kimlik doğrulamanın nasıl yapıldığına dair api'yi kontrol edin. (istekte + auth çerezi? auth başlığı istekte bulunur mu?) –