溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

在Android中使用ksoap調(diào)用webservice實現(xiàn)圖片上傳功能

發(fā)布時間:2020-11-24 15:54:16 來源:億速云 閱讀:191 作者:Leah 欄目:移動開發(fā)

本篇文章給大家分享的是有關(guān)在Android中使用ksoap調(diào)用webservice實現(xiàn)圖片上傳功能,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

代碼實現(xiàn)

private ExecutorService executorService;//定義一個線程池 

定義線程池的大小

executorService=Executors.newFixedThreadPool(5);//開啟5個線程,其實根據(jù)你的情況,一般不會超過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); //調(diào)用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 { 
 /** 
  * 服務(wù)器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調(diào)用webservice實現(xiàn)圖片上傳功能,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI