Suite

PrintTask avec proxy n'ajoute pas l'en-tête de type de contenu correct : application/x-www-form-urlencoded

PrintTask avec proxy n'ajoute pas l'en-tête de type de contenu correct : application/x-www-form-urlencoded


J'utilise un proxy que j'ai créé moi-même pour effectuer les tâches d'exportation de la carte. J'ai remarqué que les requêtes GET/POST utilisent l'en-tête de type de contenu : application/x-www-form-urlencoded.

Cependant, parfois, lorsqu'il utilise la requête GET, l'application/x-www-form-urlencoded n'est pas ajoutée et j'obtiens une erreur 415 de mon proxy. Plus précisément, j'obtiens :

AVERTIR | JAXRSUtils | Aucun lecteur de corps de message n'a été trouvé pour la classe de requête MultivaluedMap, ContentType : application/octet-stream.

Avez-vous une idée de la raison pour laquelle la requête esri n'utilise pas cet en-tête ? En outre, des idées sur la façon dont puis-je forcer l'exécution de la tâche d'impression et le proxy afin d'utiliser le type de contenu spécifique ?

Voici mon code :

require(["esri/tasks/PrintTask","dojo/_base/json","esri/config","esri/urlUtils" ], function(PrintTask,JSON, esriConfig,urlUtils) { mapExportService = "http:// blablabla/execute" urlUtils.addProxyRule({ urlPrefix : mapExportService, proxyUrl : "rest/api/download/proxy" }); var printTask = new esri.tasks.PrintTask(mapExportService); var Web_Map_as_JSON = JPrintSON.toJson( ($scope.map)); var template = new esri.tasks.PrintTemplate(); template.format = data.format; template.layout = ""; template.layout = "A4 Landscape"; var params = new esri. task.PrintParameters(); params.map = $scope.map; params.template = template; printTask.execute(params, printResult, errorHandler); });

Bien, Conducteur d'impression peut aider dans ce cas et peut faire gagner beaucoup de temps. Il imprime tous les fichiers d'un dossier en mode batch sans avoir à sélectionner manuellement un fichier pour l'impression. Donc pas de problème du tout. Je l'ai eu sur http://www.print-conductor.com Il en bénéficiera vraiment. Merci