Отправить изображение с Android в веб-сервис SoapAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Отправить изображение с Android в веб-сервис Soap

Сообщение Anonymous »


Я хочу отправить изображение с устройства Android в веб-службу SOAP. Раньше я загружал изображение с сервера с устройства Android с помощью веб-сервиса SOAP, но на этот раз я хочу отправить файл на сервер, к сожалению, столкнулся с проблемой при отправке файла на сервер. Я пробовал с Base64 и String, к сожалению, данные на сервер не отправляются и выдает ошибку.

Текст ошибки, когда я отправляю pi.setType с типом String.class:

414 Request-uri слишком велик

Текст ошибки при отправке pi.setType с типом Base64.class:

Серверу не удалось обработать запрос.

//Декодируем растровое изображение: Строка закодирована = ""; закодировано =ImageUtil.convert(bitmapOut); // Клиентская часть: @Override protected String doInBackground(String... params) { System.out.println("@line AcntCode:" + params[1]); System.out.println("@line AttachFile:" + params[2]); Запрос SoapObject = новый SoapObject(NAMESPACE, METHOD_NAME_FunAttachFile); PropertyInfo пи; пи = новый PropertyInfo(); pi.setName(Param_FunAttachFile_AcntCode); pi.setValue(параметры[1]); pi.setType(String.class); request.addProperty(пи); пи = новый PropertyInfo(); pi.setName(Param_FunAttachFile_AttachFile); pi.setValue(params[2]); pi.setType(Base64.class); request.addProperty(пи); Конверт SoapSerializationEnvelope = новый SoapSerializationEnvelope(SoapEnvelope.VER12); конверт.dotNet = правда; конверт.setOutputSoapObject(запрос); Строковый путь = HTTP + _ip + ASMX; пытаться { HttpTransportSE androidHttpTransport = новый HttpTransportSE (путь, 10000); androidHttpTransport.call(SOAP_ACTION_FunAttachFile, конверт); Ответ SoapPrimitive = (SoapPrimitive) конверт.getResponse(); Strresponse = ответ.toString(); } catch (Исключение е) { е.printStackTrace(); Строка stackTrace = Log.getStackTraceString(e); System.out.println("@line e.getMessage: " + e.getMessage()); System.out.println("@line stackTrace: " + stackTrace); } вернуть ноль; Класс преобразования растрового изображения в base64:

публичный класс ImageUtil { общедоступное статическое преобразование растрового изображения (String base64Str) выдает IllegalArgumentException { byte[] decodedBytes = Base64.decode( base64Str.substring(base64Str.indexOf(",") + 1), Base64.DEFAULT ); return BitmapFactory.decodeByteArray(decodedBytes, 0, decodedBytes.length); } public static String Convert (Растровое изображение) { ByteArrayOutputStream outputStream = новый ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.PNG, 100, выходной поток); return Base64.encodeToString(outputStream.toByteArray(), Base64.DEFAULT); }

Серверная сторона:

Открытая функция FunAttachFile(ByVal AcntCode As String, ByVal AttachFile как строка) как логическое значение Тусклый журнал как новый класс WriteToTextFileClass log.WriteTxt("Начать запрос...") Вернуть истину Конечная функция Конечно, я пробовал и другие способы, но, к сожалению, не решилось. Если нужны дополнительные документы, я их пришлю. Я приветствую любые рекомендации.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»