J'ai un script Python
+ requests
.
Étapes que le script doit exécuter :
La contrainte :
Seul le fichier approuvé a pu être téléchargé
Mon code :
requests.post(url_to_create, files={"file": open(path_to_file)})
requests.post(url_to_approve, data={'id': file_id})
requests.get(url_to_download, data={'id': file_id})
Le problème :
Ce code fonctionne presque parfaitement, mais parfois je ne reçois aucun fichier. J'ai constaté que les première et troisième demandes renvoient 200
code d'état tandis que le second renvoie 202
. Si je comprends bien (dites-moi si je me trompe) état 202: Accepted
signifie que le serveur accepte la demande et renvoie le code d'état sans que la demande soit terminée
La question :
Cela signifie-t-il que la demande de téléchargement peut être envoyée même si la demande d'approbation n'est pas déjà terminée et, dans l'affirmative, comment puis-je attendre la fin de la demande d'approbation avant d'envoyer la demande de téléchargement?
Cela dépend de l'implémentation de votre serveur et votre serveur décide comment 202
sera traité.
202 Accepté
La demande a été acceptée pour traitement, mais le traitement n'est pas terminé. La demande pourrait éventuellement être traitée ou non, car elle pourrait être refusée lors du traitement. Il n'est pas possible de renvoyer un code d'état à partir d'une opération asynchrone comme celle-ci.
La réponse 202 est volontairement sans engagement. Son but est de permettre à un serveur d'accepter une demande pour un autre processus (peut-être un processus orienté par lots qui n'est exécuté qu'une fois par jour) sans exiger que la connexion de l'agent utilisateur au serveur persiste jusqu'à la fin du processus. L'entité renvoyée avec cette réponse DEVRAIT inclure une indication de l'état actuel de la demande et soit un pointeur vers un moniteur d'état, soit une estimation du moment où l'utilisateur peut s'attendre à ce que la demande soit satisfaite.
Si le corps de la réponse est vide, il est judicieux de vérifier les en-têtes de réponse qui doivent contenir des informations supplémentaires.
Référence - https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html