3 Stimmen

IOS wie man POST GET DELETE PUT Rest Api

Ich baue meine App in Verbindung mit einer Rest-API und bis jetzt habe ich nur eine GET-Anfrage mit folgendem Code gemacht:

//Start login process
NSString *emailstring = email.text;
NSString *passstring = pass.text;

// Create the URL from a string.
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://www.myserver.com/Rest/API/users?format=json&email=%@&password=%@",emailstring,passstring]];
NSLog(@"%@",url);

// Create a request object using the URL.
NSURLRequest *request = [NSURLRequest requestWithURL:url];

// Prepare for the response back from the server    
NSHTTPURLResponse *response = nil;
NSError *error = nil;

// Send a synchronous request to the server (i.e. sit and wait for the response)
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSLog(@"Reponse from web:%@", response);

// Check if an error occurred    
if (error != nil) {
    NSLog(@"%@", [error localizedDescription]);
    // Do something to handle/advise user.

    UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"Login error"
                                                      message:@""
                                                     delegate:nil
                                            cancelButtonTitle:@"OK"
                                            otherButtonTitles:nil];
    [message show];

}

else {

    // Convert the response data to a string.
    NSString *responseString = [[NSString alloc] initWithData:responseData  encoding:NSUTF8StringEncoding];

    // View the data returned - should be ready for parsing.
    NSLog(@"%@", responseString);

    // Add data to a Plist file for next time
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *path = [documentsDirectory stringByAppendingPathComponent:@"login.plist"];

    NSArray *values = [[NSArray alloc] initWithObjects:emailstring,passstring,@"IDtest",nil];
    [values writeToFile:path atomically:YES];
    [values release];

    [self dismissModalViewControllerAnimated:YES];
}

Dieser Code funktioniert nur für eine GET-Anfrage. Ich sah es gibt eine Menge von Rahmen (z. B. RestKit, ....). Aber ich bin immer ein bisschen verloren mit anderen Anfrage! Also, was ist die beste Lösung, um POST DELETE PUT-Anfrage für eine IOS-App zu machen?

2voto

J2theC Punkte 4392

Es handelt sich um ähnlichen Code, der jedoch die Klasse NSMutableRequest verwendet. Sie können den httpbody und andere Parameter für die Kommunikation mit dem Server festlegen.

prüfen Sie die Dokumentation: https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSMutableURLRequest_Class/Reference/Reference.html

um etwas zu posten, setzen Sie einfach setHTTPMethod:@"POST "und weisen Sie die Daten mit setHTTPBody zu:

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X