Ich bin ein Anfänger für die Verwendung von WebRequest in C# und ich versuche, POST-Methode zu verwenden, um meine Bestellungen im Apple Online Store (https://secure2.store.apple.com/order/list) zu überprüfen.HTTP-POST-Methode schlägt fehl
Ich möchte eine einzelne Bestellung überprüfen und festgestellt, dass ich die POST-Methode mit Parametern verwenden soll: orderLookup-order-number (Bestellnummer) und orderLookup-order-user-info (Mein Apple-Konto).
Ich habe versucht, diese zwei Parameter https://secure1.store.apple.com/us/shop/order/json/single auf https://www.hurl.it/ von schreiben:
Post an: https://secure1.store.apple.com/us/shop/order/json/single
parameter1: orderLookup-Auftragsnummer Wert: [Bestell-Nr]
parameter2: orderLookup -order-user-info Wert: [Apple ID]
und erfolgreich eine Rendite erhalten. Wenn ich es jedoch in C# mache, scheitere ich. Kann jemand bitte meine Fehler aufzeigen? Meine Funktion ist wie folgt.
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;
}
Ich habe einen Fehler 503, wenn ich die HttpWebResponse bekommen wollte. Vielen Dank.
503 zeigt Service nicht verfügbar an. – gypsyCoder
@gypsyCoder Vielen Dank für Ihre Antwort, aber ich kann eine Antwort erhalten, wenn ich keine Parameter für die POST-Methode übergeben – user
Beste Schätzung ist die Authentifizierung. Die Webanforderung ist nicht authentifiziert, daher gibt Ihnen der Server keinen Zugriff auf die Daten. Überprüfen Sie die API zur Authentifizierung. (request + auth cookie? auth header in request?) –