0
Je reçois une erreur indiquant "Le serveur n'a pas pu traiter la demande."> Incident d'instance. " lorsque j'essaie de télécharger une image avec le service Web SOAP.Téléchargement de l'image sur le serveur avec le service Web SOAP
S'il vous plaît aider comme je suis coincé ici.
Voici mon code:
private class UploadImage extends AsyncTask<String, Void, String> {
@Override
protected void onPreExecute() {
progressDialog = new ProgressDialog(UploadImageActivity.this);
progressDialog.setIndeterminate(false);
progressDialog.setCancelable(false);
progressDialog.setMessage("Please wait..");
progressDialog.show();
}
@Override
protected String doInBackground(String... params) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 90, baos);
//bMap is the bitmap object
byte[] imagebyte = baos.toByteArray();
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("Email", UserContext.email);
request.addProperty("MobileNo", UserContext.mobilenumber);
request.addProperty("Image", imagebyte);
request.addProperty("Flage_InsertiedBy", UserContext.Flage_InsertiedBy);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
new MarshalBase64().register(envelope);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
try {
androidHttpTransport.call(SOAP_ACTION, envelope);
SoapPrimitive response = (SoapPrimitive) envelope.getResponse();
webResponse = response.toString();
System.out.println("test response upload " + webResponse);
} catch (Exception e) {
System.out.println("test response upload ex " + e.getMessage());
}
return webResponse;
}
@Override
protected void onPostExecute(String result) {
progressDialog.dismiss();
}
'request.addProperty (" Image ", imagebyte);'. Je pense que vous ne pouvez envoyer que du texte au serveur de savon. Pas d'octets. Le compilateur va essayer de faire une chaîne sur les octets en convertissant votre code en 'request.addProperty (" Image ", imagebyte.toString());'. Mais alors le contenu du tableau d'octets ne sera pas envoyé en tant que chaîne mais une chaîne comme] @ 12345ade qui est un identificateur java pour le tableau. S'il vous plaît imprimer imagebyte.toString() à voir. – greenapps