问题
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
回答1:
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:
- Convert your text file to Binary String
- Store it into the single string
- 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:
- Ask the server side developers to send the your file in the format of binary string
- 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.
来源:https://stackoverflow.com/questions/13486543/android-ksoap2-web-service-for-download-upload