Mon affichage Django génère un PDF via pycairo en réponse à un POST (je ne redirige pas en réponse à la POST). Lorsque je POST utilise des navigateurs de bureau, je peux enregistrer et/ou visualiser le PDF en utilisant Adobe Reader ou Document Viewer. Toutefois, lorsque je POST via mes navigateurs android, les lecteurs Adobe PDF Reader et ThinkFree signalent tous les deux que le fichier est corrompu.PDF en réponse aux navigateurs POST - android effectuent GET supplémentaire et enregistrer en tant que fichier
regardant dans les fichiers journaux sur mon serveur d'applications les deux navigateurs Android envoient un POST suivi immédiatement par un GET pour la même page:
[24/Sep/2010:22:49:20 -0500] "POST /courses/blank/create/ HTTP/1.1" 200 8895 "http://example.com/create/" "Mozilla/5.0 (Linux; U; Android 2.1-update1; en-us; SPH-D700 Build/ECLAIR) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17"
[24/Sep/2010:22:49:20 -0500] "GET /courses/blank/create/ HTTP/1.1" 200 9432 "-" "Mozilla/5.0 (Linux; U; Android 2.1-update1; en-us; SPH-D700 Build/ECLAIR) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17"
Quand je regarde le fichier enregistré sur le téléphone, il est le HTML la requête GET.
est ici un squelette de la vue:
def create(request, template="blankgrids/create.html"):
if request.method == 'POST':
form = BlankGridForm(request.POST)
if form.is_valid():
response = HttpResponse(mimetype='application/pdf')
response['Content-Disposition'] = 'attachment; filename=example.pdf'
# snipped pycairo code that writes directly into response
return response
else:
form = BlankGridForm()
return render_to_response(template,
{'form': form},
context_instance=RequestContext(request))
Je me demande ce qui pourrait être à l'origine des navigateurs Android pour effectuer l'EEG?
Ned - Merci pour la suggestion. Dans ce site, les fichiers PDF générés peuvent être partagés et non régénérés. Donc, je pensais à avoir le contrôle POST si le PDF existe. Sinon, il le génère sur le disque. Dans tous les cas, le POST redirige vers une URL permanente pour le fichier PDF. Cela permet un bookmarking par les utilisateurs et la mise en cache par le serveur Web. C'est bizarre que ces navigateurs mobiles aient ce comportement ... – saschwarz
Sons parfaits. –