2012-09-06 1 views
0

Je travaille avec une API qui a une méthode DownloadFile. Lors d'une demande réussie à la méthode, la réponse aura un type de contenu application/octet-stream et contiendra un fichier. Lors d'une demande infructueuse à la méthode, la réponse aura un type de contenu text/xml et contiendra l'erreur appropriée.curl - Vérifier le type de contenu avant de décider quoi faire avec la charge utile

Les fichiers que je demande sont des archives contenant plusieurs photos et peuvent devenir très volumineux. Par conséquent, j'utilise CURLOPT_FILE pour écrire la charge utile directement dans un fichier plutôt que de l'enregistrer en mémoire.

Ma question est, est-il un moyen de vérifier le type de contenu de la réponse, puis décider quoi faire avec la charge utile? Je veux seulement écrire la charge utile dans un fichier si le type de contenu est application/octet-stream. Sinon, je veux juste obtenir l'erreur de la réponse XML et la renvoyer à l'utilisateur.

Merci.

Répondre

1

Vous pouvez envoyer une demande HEAD http avant de télécharger et d'analyser la réponse pour le champ de type de contenu. Pour cela, vous devrez utiliser les options CURLOPT_NOBODY et CURLOPT_HEADER avec peut-être CURLOPT_RETURNTRANSFER pour obtenir la séquence http HEAD complète sous la forme d'une chaîne de curl_exec().

Questions connexes