简体   繁体   中英

Android Ksoap2 web service for download/Upload

I want to write a program using ksoap web service and download a file to android mobile from web service. I must access a text file from web service and download it in the android mobile.Can some one help me with tutorial or links corresponding it

KSOAP is simply send request and getting responds. Lot of example are there in web search and get your suitable example. Here some examples Example 1

Example 2

Example 3

Example 4

For uploading and downloading the files through the SOAP web service I'm using the following method

Uploading:

  1. Convert your text file to Binary String
  2. Store it into the single string
  3. send it through the soap web service

Example

Uri uriString = Uri.parse(objBundle.get("").toString());
File file = new File(uriString.getPath());
FileInputStream objFileIS;
objFileIS = new FileInputStream(file);
ByteArrayOutputStream objByteArrayOS = new ByteArrayOutputStream();
byte[] byteBufferString = new byte[1024];
for (int readNum; (readNum = objFileIS.read(byteBufferString)) != -1;) 
{
objByteArrayOS.write(byteBufferString, 0, readNum);
system.out.println("read " + readNum + " bytes,");
}                    
byte[] byteBinaryData = Base64.encode((objByteArrayOS.toByteArray()), Base64.DEFAULT);
strAttachmentCoded = new String(byteBinaryData);

Download:

  1. Ask the server side developers to send the your file in the format of binary string
  2. Get the responds string and convert it as a file and store it in sdcard.

Example

byte[] bytes;
strBinaryPDFString = cursorGetBinaryString.getString(0);//Index position of the binary string in table
File createfile = new File(Environment.getExternalStorageDirectory(),"/Folder/");
createfile.mkdirs();
File outputFile = new File(createfile,"FileName.pdf");//creating temporary file in phone Memory
new FileOutputStream(outputFile);
bytes = Base64.decode(strBinaryPDFString,Base64.DEFAULT);
File filepath = new File(Environment.getExternalStorageDirectory(),"/Folder/FileName.pdf");
OutputStream pdffos = new FileOutputStream(filepath);
pdffos.write(bytes);//writing the binary string into the payslip.pdf temporary file
pdffos.flush();
pdffos.close();

The above method is working fine for me. May be you can find another best method.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM