#android #soap #upload
#Android #soap #загрузка
Вопрос:
Как я могу загрузить файл изображения на веб-сервис с помощью SOAP?
Мне нужно, чтобы оно использовалось с SoapObejct, чтобы веб-сервис мог обрабатывать входной файл в его контексте и присваивать ему новое имя файла.
Как? Есть примеры кода?
Yoav
Ответ №1:
Преобразуйте ваш файл изображения в строку 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.
Редактировать:
Также вы можете игнорировать Json и использовать метод webserivce с 2 параметрами: MyWebserviceMethod(string filename, string content);
передать строку Base64 в качестве второго параметра.
Комментарии:
1. Хорошо, как преобразовать его в Base64? и как преобразовать обратно в файл изображения на сервере? Я нашел мало информации об использовании DataHandler — что лучше? Хороший короткий пример кода будет действительно отличным. Спасибо
2. Можно ли использовать Gson с SoapObject? Я использую SoapObject c;… c.adppProperty(…). Должен ли я поместить базовую информацию ^ $ в качестве свойства?
3. как вы реализуете свой веб-сервис? это . Веб-сервис Net?
4. вы отправляете «строку», созданную в формате JSON. вы не отправляете объект «JSON».
5. addProperty(«ParamName», strJson)