загрузить изображение с Android на веб-сервис - PullRequest
5 голосов
/ 05 ноября 2011

Как я могу загрузить файл изображения в веб-сервис, используя SOAP?

Мне нужно, чтобы он использовался с SoapObejct, чтобы веб-сервис мог обрабатывать входной файл в своем контексте и давать ему новое имя файла.

Как? Какие-нибудь примеры кода?

Йоав

1 Ответ

7 голосов
/ 05 ноября 2011

Преобразуйте файл изображения в строку Base64 и легко отправьте свою строку с ее именем в веб-сервис.Вам все еще нужен пример кода?

Редактировать

public static String fileToBase64(String path) throws IOException {
    byte[] bytes = Utilities.fileToByteArray(path);
    return Base64.encodeBytes(bytes);
}

public static byte[] fileToByteArray(String path) throws IOException {
    File imagefile = new File(path);
    byte[] data = new byte[(int) imagefile.length()];
    FileInputStream fis = new FileInputStream(imagefile);
    fis.read(data);
    fis.close();
    return data;
}

public class MyImage  {
public String name;
public String content;
}

отправить свой объект на веб-сервис в виде строки JSON:

в вашей деятельности:

MyClass myClass = new MyClass();
myClass.name = "a.jpg";
myClass.content = fileToBase64("../../image.jpg");
sendMyObject(myClass);

private void sendMyObject(
        MyImage myImage ) throws Exception {
    // create json string from your object
    Gson gson = new Gson();
    String strJson = gson.toJson(myImage);
    //send your json string here
    //...

}

В вашем веб-сервисе преобразуйте вашу строку json в реальный объект, который является копией MyClass.

edit:

Также вы можетеигнорируйте Json и используйте метод webserivce с 2 параметрами: MyWebserviceMethod(string filename, string content); передайте строку Base64 в качестве второго параметра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...