Hallo,
zur Zeit spiele ich ein bisschen mit dem Login-System etc. via POST-Request rum.
Leider funktioniert das nicht so, wie es soll.
Vorab: Hier geht es um iOS / OS X, das ganze funktioniert via Objective-C und dem Foundation-Framework. Für die NSURLConnection (so nennt sich der WebRequest) habe ich eine eigene Klasse.
Der Login klappt inzwischen, ich erhalte als Antwort die Seite mit dem Weiterleiten und im Header einen Cookie, den speichere ich für die spätere Verwendung ab.
Jetzt will ich eine Treasure erstellen:
Der Code, der den Request startet:
Als Antwort erhalte ich eine Page, die mir sagt, dass ich keinen Zugriff auf diese Seite habe. Also hat was nicht geklappt.
Mein Header, den ich via POST abschicke, sieht so aus:
Mein Request-Body sieht so aus:
Da ich beim Login und beim Treasure erstellen die selbe Funktion (auch zum Umwandeln des Strings) nutze, sollte der requestBodyString kein großes Problem darstellen.
-> Fehlt etwas im POST-Header? Oder evtl. im Body? Ist der Fehler irgendwo offensichtlich und ich bin zu doof?
Oh, und der String für die Treasure-URL:
Würde mich über Hilfe freuen :)
Grüße
zur Zeit spiele ich ein bisschen mit dem Login-System etc. via POST-Request rum.
Leider funktioniert das nicht so, wie es soll.
Vorab: Hier geht es um iOS / OS X, das ganze funktioniert via Objective-C und dem Foundation-Framework. Für die NSURLConnection (so nennt sich der WebRequest) habe ich eine eigene Klasse.
Der Login klappt inzwischen, ich erhalte als Antwort die Seite mit dem Weiterleiten und im Header einen Cookie, den speichere ich für die spätere Verwendung ab.
Jetzt will ich eine Treasure erstellen:
Der Code, der den Request startet:
Code:
- (void)startConnectionWithURL:(const NSString *)_url Body:(NSString *)_body
{
NSMutableURLRequest *rq = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:(NSString *)_url] cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:30];
NSData *requestBodyData = [_body dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
[rq setHTTPMethod:@"POST"];
[rq setValue:@"Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0" forHTTPHeaderField:@"User-Agent"];
[rq setValue:@"HIER IST DER COOKIE, DEN ICH DAVOR ERHALTEN HABE" forHTTPHeaderField:@"Cookie"];
[rq setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[rq setValue:[NSString stringWithFormat:@"%d",[requestBodyData length]] forHTTPHeaderField:@"Content-Length"];
[rq setHTTPBody:requestBodyData];
NSURLConnection *c = [[NSURLConnection alloc] initWithRequest:rq delegate:self];
[c start];
}
Mein Header, den ich via POST abschicke, sieht so aus:
Code:
2013-01-28 18:07:11.351 [23806:c07] {
"Content-Length" = 75;
"Content-Type" = "application/x-www-form-urlencoded";
Cookie = "bbsessionhash=asdf; path=/; HttpOnly, bbuserid=asdf; expires=Tue, 28-Jan-2014 17:07:09 GMT; path=/; HttpOnly, bbpassword=asdf; expires=Tue, 28-Jan-2014 17:07:09 GMT; path=/; HttpOnly, IDstack=3326759; expires=Tue, 28-May-2013 17:07:09 GMT; path=/, bbsessionhash=asdf; path=/; HttpOnly, epvp_backend=s6";
"User-Agent" = "Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0";
}
Code:
NSString *requestBodyString = [NSString stringWithFormat:@"title=Megatreasure&content=superdupertreasure&cost=10&createtreasure=submit"];
-> Fehlt etwas im POST-Header? Oder evtl. im Body? Ist der Fehler irgendwo offensichtlich und ich bin zu doof?
Oh, und der String für die Treasure-URL:
Code:
const NSString *createTreasure = @"http://elitepvpers.com/theblackmarket/treasures/";
Grüße