IOS JSON изпраща имейл от Mandrill

Имам приложение за IOS, на което бих искал да изпратя имейл чрез Mandrill. Опитах се да внедря това, но не работи и се обърках.

Когато натискам бутона за изпращане на имейл от IOS приложението, регистрирам това съобщение за грешка:

{"status":"error","code":-1,"name":"ValidationError","message":"You must specify a key value"}

Моят код е:

    NSString *post = [NSString stringWithFormat:@"{\"key\": \"abcdefg123456\", \"raw_message\": \"From: [email protected]\nTo: [email protected]\nSubject: Some Subject\n\nSome content.}"];
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];

NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:@"https://mandrillapp.com/api/1.0/messages/send-raw.json"]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];
    NSLog(@"Post: %@", post);

NSURLResponse *response;
NSData *POSTReply = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];
NSString *theReply = [[NSString alloc] initWithBytes:[POSTReply bytes] length:[POSTReply length] encoding: NSASCIIStringEncoding];
NSLog(@"Reply: %@", theReply);

Моля, уведомете ме къде греша.


person Steve    schedule 13.07.2014    source източник


Отговори (1)


Изглежда сте забравили \" след "съдържание.".

Опитайте се да напишете вашата променлива "post" както следва:

NSString *post = [NSString stringWithFormat:@"{\"key\": \"abcdefg123456\", \"raw_message\": \"From: [email protected]\nTo: [email protected]\nSubject: Some Subject\n\nSome content.\"}"];

Надявам се да помогне.

person scollaco    schedule 13.07.2014
comment
Благодаря, пропуснах съдържанието \ after. Също така трябваше да добавя \ преди всеки \n - person Steve; 14.07.2014