Je souhaite publier une activité sur Strava depuis iOS.
Les documents Strava ( http://strava.github.io/api/v3/uploads/#post-file ) ont l'exemple curl comme suit:
EXEMPLE DE DEMANDE
$ curl -X POST https://www.strava.com/api/v3/uploads \ -F access_token=83ebeabdec09f6670863766f792ead24d61fe3f9 \ -F activity_type=ride \ -F [email protected] \ -F data_type=fit
Dans ce cas, le file test.fit est l'activité à publier.
J'essaye de signaler ceci asynchronous en utilisant AFNetworking. J'ai le code de test suivant:
NSURL *url = [NSURL URLWithSsortingng:@"https://www.strava.com"]; AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url]; NSData *fileData = [NSData dataWithContentsOfFile:filename]; AFOAuthCredential *credential = [AFOAuthCredential resortingeveCredentialWithIdentifier:kStravaTokenStored]; NSSsortingng *accessToken = credential.accessToken; NSDictionary *parameters = @{@"access_token": accessToken, @"activity_type" : @"ride",@"data_type" : @"fit", @"name" : @"Test", @"stationary" : @"1" }; NSMutableURLRequest *request = [httpClient multipartFormRequestWithMethod:@"POST" path:@"/api/v3/uploads" parameters:parameters constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) { [formData appendPartWithFileData:fileData name:@"Test" fileName:@"Test.fit" mimeType:@"application/octet-stream"]; }]; AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request]; [operation setUploadProgressBlock:^(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite) { NSLog(@"Sent %lld of %lld bytes", totalBytesWritten, totalBytesExpectedToWrite); }]; [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { NSLog(@"succss %@", responseObject); } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"failure %@ \n\n %@", error, operation); }]; [httpClient enqueueHTTPRequestOperation:operation];
Actuellement, je vois l'erreur suivante:
Error Domain = AFNetworkingErrorDomain Code = -1011 "Code d'état attendu dans (200-299), obtenu 400" UserInfo = 0x9b62300 {NSLocalizedRecoverySuggestion = {"message": "Demande incorrecte", "erreurs": [{"ressource": "Télécharger "," champ ":" données "," code ":" vide "}]},
Quelqu'un a une idée de ce qui me manque ici?
Merci les fourmis
Il doit être
[formData appendPartWithFileData:fileData name:@"file" fileName:@"Test.fit" mimeType:@"application/octet-stream"]
ou pas?