Я получаю сообщение об ошибке: Java.lang.RuntimeException: Cannot serialize : -119
при выполнении метода вызова в HttpTransportSE
.Ошибка сериализации Java при отправке массива байтов в webservice
Я попытался как добавление объекта непосредственно:
public String UploadPhotoCall(byte[] imageContent)
SoapObject request = new SoapObject(_wsdlTargetNamespace, _operation);
request.addProperty("imageContent", imageContent);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
HttpTransportSE httpTransport = new HttpTransportSE(_soapAddressLocation);
Object response = null;
try{
httpTransport.call(_action, envelope);
response = envelope.getResponse();
}
catch(IOException ex){
response = ex.toString();
}
catch(Exception ex){
response = ex.toString();
}
и после прочтения темы Pass Array using Web services in Ksoap2
Я попытался это:
SoapObject request = new SoapObject(_wsdlTargetNamespace, _operation);
PropertyInfo propertyImage = new PropertyInfo();
SoapObject soapImage = ByteArrayTransform(imageContent);
propertyImage.setValue(soapImage);
propertyImage.setType(soapImage.getClass());
propertyImage.setName("imageContent");
request.addProperty(propertyImage);
public SoapObject ByteArrayTransform(byte[] image){
SoapObject soapImage = new SoapObject(_wsdlTargetNamespace, _operation);
Log.i(_TAG, "byte array transform begins");
for (int i =0; i < image.length; i++){
soapImage.addProperty(Integer.toString(i), image[i]);
}
return soapImage;
}
Но это все равно не поможет. Может ли кто-нибудь показать мне, как это сделать правильно?