6
votes

iOS - Télécharger une photo avec API Imageshack JSON

J'essaie de télécharger une image à des imageshack à l'aide de leur API :

{
    "error_code" = "upload_failed";
    "error_message" = "Upload failed";
    status = 0;
}


4 commentaires

Avez-vous essayé d'envoyer nsdata au lieu de nstring ?


Oui, j'ai fait et avoir la même réponse d'erreur


Avez-vous essayé avec une très petite image? / pour s'assurer que ce n'est pas un problème de délai d'expiration


Oui, je télécharge une petite image 54x54 px


3 Réponses :


2
votes

Essayez ceci et laissez-nous savoir si cela fonctionne:

      NSData *imageToUpload = UIImageJPEGRepresentation(uploadedImgView.image,1.0);//(uploadedImgView.image);
      if (imageToUpload)
      {
        NSMutableDictionary *parameters = [[NSMutableDictionary alloc] init];
        [parameters setObject:@"MY API KEY" forKey:@"key"];
        [parameters setObject:@"json" forKey:@"format"];

        AFHTTPClient *client= [AFHTTPClient clientWithBaseURL:[NSURL URLWithString:@"https://post.imageshack.us"]];

        NSMutableURLRequest *request = [client multipartFormRequestWithMethod:@"POST" path:@"/upload_api.php" parameters:parameters constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) {
            [formData appendPartWithFileData: imageToUpload name:@"image" fileName:@"temp.jpeg" mimeType:@"image/jpeg"];
        }];

        AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];

        [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject)
         {
             NSDictionary *jsons = [NSJSONSerialization JSONObjectWithData:responseObject options:kNilOptions error:nil];
             //NSLog(@"response: %@",jsons);

         }
                                         failure:^(AFHTTPRequestOperation *operation, NSError *error)
         {
             if([operation.response statusCode] == 403)
             {
                 //NSLog(@"Upload Failed");
                 return;
             }
             //NSLog(@"error: %@", [operation error]);

         }];

        [operation start];
    }


1 commentaires

Voici un lien d'une question qui pourrait vous aider: Stackoverflow.com/ QUESTIONS / 931088 / HTTP-POST-POST-TO-IMAGEHACK



1
votes

Téléchargement d'une image (BASIC)

Obtaining an API Key
To obtain an API key, please use our API Key Request form.


1 commentaires

Oui, j'utilise la clé. Cela m'a montré une erreur que je devrais le faire lorsque je ne l'utiliserais pas, alors je suis sûr que le problème n'est pas lié à la clé API



3
votes

D'accord, j'ai réussi à résoudre mon problème. Tous les paramètres doivent être définis dans le corps de formulaire, pas comme des valeurs de demande. Il semble assez simple: xxx

espère que cela aidera quelqu'un!


0 commentaires