J'essaie d'envoyer une photo de l'application mobile Titanium Appcelerator à un serveur Web.Titanium XHR - Erreur d'analyse XML pendant XHR.SEND pendant ce temps n'utilisant pas l'analyseur XML sciemment
J'utilise l'exemple suivant:
var upload_token = "hi! I am a token!";
var content = '';
var boundary = '---------------------------170062046428149';
content += '--'+ boundary + '\r\n';
content += 'Content-Disposition: form-data; name="uploadToken"\r\n';
content += '\r\n';
content += upload_token + '\r\n';
content += '--'+ boundary + '\r\n';
content += 'Content-Disposition: form-data; name="myNickname"\r\n';
content += '\r\n';
content += myNickname+'\r\n';
content += '--'+ boundary + '\r\n';
content += 'Content-Disposition: form-data; name="nativePath"\r\n';
content += '\r\n';
content += 'file:///storage/emulated/0/Pictures/app-name/tia-217296905.jpg\r\n';
content += '--'+ boundary + '\r\n';
content += 'Content-Disposition: form-data; name="fileContent"; filename="/appicon.png"\r\n';
content += 'Content-Type: binary/octet-stream\r\n';
content += '\r\n';
var file = Ti.Filesystem.getFile(Ti.Filesystem.resourcesDirectory, '/appicon.png');
var full_content = Ti.createBuffer({value: content});
var fileStream = Ti.Stream.createStream({ source : file.read(), mode : Titanium.Stream.MODE_READ});
var content_size = full_content.append(Ti.Stream.readAll(fileStream));
Ti.API.debug('Appended File Size : ' + content_size); // ==> same as file.size
content = '\r\n';
content += '--'+ boundary + '--\r\n';
full_content.append(Ti.createBuffer({value : content}));
xhr = Ti.Network.createHTTPClient();
var send_data = full_content.toBlob();
var url = 'http://website.address/api/push_photo.php';
xhr.onload = function(e){
console.log(e);
alert("DONE!");
};
xhr.onerror = function(e){
console.log(e);
};
xhr.open('POST', url);
xhr.setRequestHeader('Content-Type', 'multipart/form-data; boundary=' + boundary);
xhr.send({image:send_data});
Tout fonctionne comme prévu, le fichier est transmis au serveur, et l'application Titanium dans mon téléphone mobile dit « DONE! ». Ce qui signifie que xhr.onload a été déclenché ...
Ma question concerne l'erreur je suis capable de voir dans la console développeur:
[ERREUR]: XMLModule: (KrollRuntimeThread) [13440, 13649] erreur d'analyse XML [eRREUR]: XMLModule: org.xml.sax.SAXParseException: inattendue jeton (position: TEXTE Array [eRREUR]: XMLModule: ([eRREUR]: XMLModule: [... UPL @ 7: 1 dans [email protected]) [ERROR]: XMLModule: à org.apache.harmony.xml.parsers.DocumentBuilderImpl.parse (DocumentBuilderImpl.java:146) [ERREUR] : XMLModule: at javax.xml.parsers.DocumentBuilder.parse (DocumentBuilder.java:107) [ERROR]: XMLModule: à ti.modules.titanium.xml.XMLModule.parse (XMLModule.java:82) [ERREUR ]: XMLModule: à ti.modules.titanium.xml.XMLModule.parse (XMLModule.java:68) [ERROR]: XMLModule: à ti.modules.titanium.network.TiHTTPClient.getResponseXML (TiHTTPClient.java: 562) [eRREUR]: XMLModule: à ti.modules.titanium.network.HTTPClientProxy.getResponseXML (HTTPClientProxy.java:129) [eRREUR]: XMLModule: à org.appcelerator.kroll.runtime.v8.V8Object. nativeCallProperty (Méthode native) [ERREUR]: XMLModule: à org.appcelerator.kroll.runtime.v8.V8Object.callProperty (V8Object.java:73) [ERREUR]: XMLModule: à org.appcelerator.kroll.KrollProxy.handleMessage (KrollProxy.java:1155) [ERREUR] : XMLModule: à android.os.Handler.dispatchMessage (Handler.java:95) [ERROR]: XMLModule: à android.os.Looper.loop (Looper.java:137) [ERROR]: XMLModule: à [KrollRuntimeThread] [7,13656] Erreur lors de l'analyse XML [ERREUR]: TiHTTPClient: : Inattendu token (position: TEXT Array [ERREUR]: TiHTTPClient: ([ERREUR]: TiHTTPClient: [upl ... @ 7: 1 à [email protected]) [ERREUR]: TiHTTPClient: à org.apache.harmony.xml.parsers.DocumentBuilderImpl.parse (DocumentBuilderImpl.java:146) [ERREUR]: TiHTTPClient: à javax.xml.parsers.DocumentBuilder.parse (DocumentBuilder.java:107) [ERREUR]: TiHTTPClient: à ti.modules.titanium.xml.XMLModule.parse (XMLModule.java:82) [ERROR]: TiHTTPClient: à ti.modules.titanium.xml.XMLModule.parse (XMLModule.java:68) [ERROR]: TiHTTPClient: à ti.modules.titanium.network.TiHTTPClient.getResponseXML (TiHTTPClient.java:562) [eRREUR ]: TiHTTPClient: à ti.modules.titanium.network.HTTPClientProxy.getResponseXML (HTTPClientProxy.java:129) [ERROR]: TiHTTPClient: à org.appcelerator.kroll.runtime.v8.V8Object.nativeCallProperty (native Method) [ERROR]: TiHTTPClient: à org.appcelerator.kroll.runtime.v8.V8Object.callProperty (V8Object.java:73) [ERREUR]: TiHTTPClient: à org.appcelerator.kroll.KrollProxy .handleMessage (KrollProxy.java:1155) [ERREUR]: TiHTTPClient: à android.os.Handler.dispatchMessage (Handler.java:95) [ERREUR]: TiHTTPClient: at android.os.Looper.loop (Looper. java: 137) [eRREUR]: TiHTTPClient: à org.appcelerator.kroll.KrollRuntime $ KrollRuntimeThread.run (KrollRuntime.java:118) [WARN]: TiBlob: (KrollRuntimeThread) [24,13680] getFile pas pris en charge pour les types blob sans fichier. [WARN]: TiBlob: (KrollRuntimeThread) [8,13688] getNativePath non pris en charge pour types blob sans fichier. [INFO]:
{"code": 0, "source": {"responseText": "Tableau \ n (\ n [uploadToken] => salut! Je suis un jeton! \ N [monNom] => raholl \ n [nativePath] => file: ///storage/emulated/0/Pictures/app-name/tia-217296905.jpg \ n "\ n", "emplacement": "http: // **** ****/api/push_photo.php "," status ": 200," domaine ": null," readyState ": 4," tlsVersion ": 0," connectionType ":" POST "," validatesSecureCertificate ": faux, "statusText": "OK", "nom d'utilisateur": null, "mot de passe": null, "allResponseHeaders": "null: HTTP/1.1 OK \ nConnexion: Keep-Alive \ nContenu-Longueur: 166 \ nContenu-Type : text/html \ nDate: mer, 18 mai 2016 02:10:12 GMT \ nKeep-Alive: timeout = 5, max = 100 \ nServeur: Apache/2.2.22 (Debian) \ nVariable: Accepter-Encodage \ nX-Android-Reçu-Millis: 1463537845271 \ nX-Android-Sent-Millis: 1463 537844807 \ nX-Powered-By: PHP/5.5.33-1 ~ pointdeb + 7.1 \ n "," responseXML ": null," responseData ": {" fichier ": null," chemin_natif ": null," hauteur ": 0, "length": 166, "width": 0, "mimeType": "text/html", "nomapi": "Ti.Blob", "text": "Array \ n (\ n [uploadToken] = > salut! Je suis un jeton! \ N [myNickname] => raholl \ n
[nativePath] => fichier: ///storage/emulated/0/Pictures/app-name/tia-217296905.jpg \ n) \ n "," type ": 2," bubbleParent ": true}," autoRedirect ": vrai," apiName ":" Ti.Network.HTTPClient "," autoEncodeUrl ": true," connecté ": false," bubbleParent ": true , "_ événements": { "disposehandle": {}}}, "succès": true} [INFO]: ALERTE: (KrollRuntimeThread) [8,13696] fait
Quelle ligne est cette « erreur d'analyse XML [ERREUR] "venant de? Comment résoudre ce problème?
Tout semble fonctionner très bien, mais l'erreur semble assez grave ...
Toutes les idées seraient appréciées.