您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關在Android中使用ksoap調用webservice實現圖片上傳功能,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
代碼實現
private ExecutorService executorService;//定義一個線程池
定義線程池的大小
executorService=Executors.newFixedThreadPool(5);//開啟5個線程,其實根據你的情況,一般不會超過8個
線程啟動
executorService.execute(new Runnable() { @Override public void run() { getImageromSdk(); } });
最后就是批量上傳圖片的方法了
public void getImageromSdk(){ Log.i("進入獲取圖片方法", "進入獲取圖片方法"); try{ String srcUrl = "/sdcard/"; //路徑 String fileName = "1.png"; //文件名 String filrName2="2.jpg";//文件名 List<String>imageList=new ArrayList<>();//定義一個list,里面裝2個圖片地址,模擬批量上傳 imageList.add(fileName); imageList.add(filrName2); for (int i = 0; i < imageList.size(); i++) { FileInputStream fis = new FileInputStream(srcUrl + imageList.get(i)); ByteArrayOutputStream baos = new ByteArrayOutputStream(); byte[] buffer = new byte[4096]; int count = 0; while((count = fis.read(buffer)) >= 0){ baos.write(buffer, 0, count); } String uploadBuffer = new String(Base64.encode(baos.toByteArray(), Base64.DEFAULT)); //進行Base64編碼 String methodName = "uploadImage"; getImageFromAndroid(methodName,imageList.get(i), uploadBuffer); //調用webservice Log.i("connectWebService", "start"); fis.close(); } }catch(Exception e){ e.printStackTrace(); } }
最后就是提交soap方法了,這方法我都寫了幾百遍了
public String getImageFromAndroid(String arg0,String arg1, String arg2){ Log.i("進入端口方法", "進入端口方法"); final String methodName="getImageFromAndroid"; final String soapAction=AgbcApi.NAMESPACE+methodName; request = new SoapObject(AgbcApi.NAMESPACE, methodName); request.addProperty("arg0",arg1); request.addProperty("arg1",arg2); SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); (new MarshalBase64()).register(envelope); envelope.bodyOut = request; envelope.dotNet=false; envelope.setOutputSoapObject(request); HttpTransportSE ht = new HttpTransportSE(AgbcApi.TASKSERVICEURL); ht.debug=true; try { ht.call(soapAction, envelope); Log.i("請求", envelope.bodyIn.toString()); } catch (IOException | XmlPullParserException e) { e.printStackTrace(); } return arg1; };
配置類
public class AgbcApi { /** * 服務器ip */ private static String IP="http://10.123.42.138:8080/fff"; public static String TASKSERVICEURL=IP+"TaskService"; public static String NAMESPACE="http://iservice.gbc.com/"; }
以上就是在Android中使用ksoap調用webservice實現圖片上傳功能,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。