HTTP-Post-Anfrage in Objective-C funktioniert nicht

Ich schreibe eine HTTP-Post-Anfrage, aber aus irgendeinem Grund werden die Parameter nicht korrekt hinzugefügt, und ich kann für mein ganzes Leben nicht herausfinden, was ich falsch mache. Folgendes habe ich:

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];
[request setHTTPShouldHandleCookies:NO];
[request setTimeoutInterval:30];
[request setHTTPMethod:@"POST"];

NSString *boundary = @"---------------------------14737809831466499882746641449";

// set Content-Type in HTTP header
NSString *contentType = [NSString stringWithFormat:@"text; boundary=%@", boundary];
[request setValue:contentType forHTTPHeaderField: @"Content-Type"];

// post body
NSMutableData *body = [NSMutableData data];

// Dictionary that holds post parameters. 
NSMutableDictionary* _params = [[NSMutableDictionary alloc] init];
[_params setObject:subject forKey:@"subject"];
[_params setObject:message forKey:@"message"];
[_params setObject:[[UIDevice currentDevice] systemName] forKey:@"device"];

// add params 
for (NSString *param in _params) {
    [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n", param] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithFormat:@"%@\r\n", [_params objectForKey:param]] dataUsingEncoding:NSUTF8StringEncoding]];
}

// the server url
NSURL* requestURL = [NSURL URLWithString:CIVCManifest.contactFeed];

[body appendData:[[NSString stringWithFormat:@"--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];

// setting the body of the post to the reqeust
[request setHTTPBody:body];

// set the content-length
NSString *postLength = [NSString stringWithFormat:@"%d", [body length]];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];

// set URL
[request setURL:requestURL];

NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

Die Anforderung wird ausgeführt, es werden jedoch nicht alle Parameter ordnungsgemäß hinzugefügt. Ich hatte ein Post-Skript, das ein Foto hochlud, und ich habe das meiste davon kopiert und in dieses eingefügt, aber irgendwie funktioniert dieses nicht. Hoffentlich ist es nur ein einfacher Fehler, den ich vermisse.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage