J'utilise la bibliothèque de l'affiche de python pour tenter de télécharger un formulaire contenant notamment une image à un servlet. Localement, il fonctionne correctement, mais lorsque je le déploie sur un moteur d'application, il ne le reconnaît pas en tant que contenu en plusieurs parties.isMultipartContent = false tout en utilisant la bibliothèque affiche python
ServletFileUpload.isMultipartContent (demande) retourne false
Voici comment j'utilise la bibliothèque affiche:
register_openers()
datagen, headers = multipart_encode({"image": open(filename)})
request = urllib2.Request(url, datagen, headers)
Les contrôles de servlet pour vous assurer qu'il est multipart, mais il échoue cette vérification. Que puis-je faire pour poursuivre le débogage?
Merci, jean
mise à jour ******* ********* imprimant la trace de la pile ... voici ce que je reçois. Il se plaint l'en-tête de type de contenu isnull
org.apache.commons.fileupload.FileUploadBase $ InvalidContentTypeException: la demande ne contient pas de multipart/form-data ou flux multipart/mixtes, en-tête de type de contenu est nul org. apache.commons.fileupload.FileUploadBase $ FileItemIteratorImpl. (FileUploadBase.java:885) à org.apache.commons.fileupload.FileUploadBase.getItemIterator (FileUploadBase.java:331) à org.apache.commons.fileupload.FileUploadBase.parseRequest (FileUploadBase.java:349) à org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest (ServletFileUpload.java:126)
Merci pour le conseil. Oui, j'ai suivi avec urllib2.urlopen (demande) et tout le reste est configuré correctement et fonctionne comme prévu lorsque je lance mon application appengine localement. Quand il est déployé, il touche le servlet, mais la servlet rejette la requête car j'ai vérifié que c'est multipart. – jeanh
@jeanh, je me demande si ce chèque est correct - au servlet, pouvez-vous « vider » le flux d'octets exact, il devient (dans un fichier, connectez-vous, peu importe) et par les pairs à lui pour voir comment il diffère de ce qui est envoyé ? –
également juste vérifié, en cours d'exécution localement, request.getContentType semble très bien. Une fois déployé sur le moteur de l'application, il est nul. – jeanh