Comment faire Twilio api Post request avec l'aide de AFNetworking?

Je veux accéder à l'API Twilio en utilisant AFNetworking . J'ai essayé plusieurs façons mais je n'ai pas réussi. S'il vous plaît aidez-moi, si quelqu'un a fait une request de publication Tiwilo en utilisant AFNetworking.

Cas 1: Ceci est mon code de travail objective-c natif.

NSSsortingng *urlSsortingng = [NSSsortingng ssortingngWithFormat:@"https://%@:%@@api.twilio.com/2010-04-01/Accounts/%@/SMS/Messages", kTwilioSID, kTwilioSecret, kTwilioSID]; NSURL *url = [NSURL URLWithSsortingng:urlSsortingng]; NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; [request setURL:url]; [request setHTTPMethod:@"POST"]; NSSsortingng *bodySsortingng = [NSSsortingng ssortingngWithFormat:@"From=%@&To=%@&Body=%@", from, to, message]; NSData *data = [bodySsortingng dataUsingEncoding:NSUTF8SsortingngEncoding]; [request setHTTPBody:data]; [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { if (connectionError) { DLog(@"Error: %@", connectionError); completionBlock(connectionError, NO); } else { completionBlock(connectionError, YES); } }]; 

Cas 2: Utilisation de AFNetorking: Code qui ne fonctionne pas:

Code:

  NSSsortingng *urlSsortingng = [NSSsortingng ssortingngWithFormat:@"https://%@:%@@api.twilio.com/2010-04-01/Accounts/%@/SMS/Messages", kTwilioSID, kTwilioSecret, kTwilioSID]; NSDictionary *dict = @{ @"From" : from, @"To" : to, @"Body" : message }; AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; manager.responseSerializer = [AFJSONResponseSerializer serializer]; [manager POST:urlSsortingng parameters:dict success:^(AFHTTPRequestOperation *operation, id responseObject) { NSLog(@"Success: %@", responseObject); } failure: ^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"Error: %@", error); }]; 

Erreur connexe:

 Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn't be completed. (Cocoa error 3840.)" (JSON text did not start with array or object and option to allow fragments not set.) UserInfo=0x1775e660 {NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set., NSUnderlyingError=0x175101b0 "Request failed: bad request (400)"} 

Cas 3: Utilisation de AFNetorking: un autre code qui ne fonctionne pas:

Code:

  NSSsortingng *urlSsortingng = [NSSsortingng ssortingngWithFormat:@"https://%@:%@@api.twilio.com/2010-04-01/Accounts/%@/SMS/Messages", kTwilioSID, kTwilioSecret, kTwilioSID]; NSURL *url = [NSURL URLWithSsortingng:urlSsortingng]; NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; [request setURL:url]; [request setHTTPMethod:@"POST"]; NSSsortingng *bodySsortingng = [NSSsortingng ssortingngWithFormat:@"From=%@&To=%@&Body=%@", from, to, message]; NSData *data = [bodySsortingng dataUsingEncoding:NSUTF8SsortingngEncoding]; [request setHTTPBody:data]; AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request]; operation.responseSerializer = [AFJSONResponseSerializer serializer]; [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { NSLog(@"%@", responseObject); } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"error: %@", error); }]; [operation start]; 

Erreur connexe:

  Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn't be completed. (Cocoa error 3840.)" (JSON text did not start with array or object and option to allow fragments not set.) UserInfo=0x177a3e70 {NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.} 

Je vous remercie.

Ricky de Twilio ici. Tout d'abord un avertissement rapide. Faire une request à Twilio directement à partir d'une application iOS vous oblige à intégrer vos informations d'identification de count Twilio dans l'application, ce qui est dangereux. Ma recommandation serait d'envoyer le SMS à partir d'un script côté server auquel votre application fait une request afin de garder vos informations d'identification en security.

Cela étant dit, votre code est vraiment proche. Par défaut, l'API REST de Twilio renvoie XML . Si vous souhaitez parsingr la réponse telle qu'elle est renvoyée par défaut, vous pouvez mettre à jour le code dans la version 2 pour utiliser AFXMLParserResponseSerializer :

 operation.responseSerializer = [AFXMLParserResponseSerializer serializer]; 

Si vous préférez utiliser JSON, vous devez mettre à jour l'URL Twilio à laquelle vous envoyez la request POST et indiquer que vous souhaitez une réponse JSON:

 NSSsortingng *urlSsortingng = [NSSsortingng ssortingngWithFormat:@"https://%@:%@@api.twilio.com/2010-04-01/Accounts/%@/SMS/Messages.json", kTwilioSID, kTwilioSecret, kTwilioSID]; 

J'espère que cela pourra aider.