」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何在Android中與Androl的凌空請求後工作?

如何在Android中與Androl的凌空請求後工作?

發佈於2025-02-06
瀏覽:393

[2一個常見的任務。雖然較新的API版本中不再可用httpentity,但仍有一些方法可以使用凌空請求。

創建一個基本的倍增請求How to Make Working POST Multipart Requests with Volley in Android?
mmultipartbody; //構造函數 public Multipartrequest(字符串URL,MAP 標題,字符串MimeType,byte [] Multipartbody, wendys.listener 偵聽器,響應。 erlistenererrorListener){ super(method.post,url,errorListener); this.mlistener =偵聽器; this.merrorlistener = errorListener; this.mheaders =標題; this.mmimetype = mimeType; this.mmultipartbody = multipartbody; } //獲取器和固定器 //覆蓋Getheaders()如果您需要添加自定義標題 @Override 公共地圖 getheaders()拋出authfailureError { 返回(mheaders!= null)? mheaders:super.getheaders(); } // Override getBodyContentType()為Multipart請求設置正確的MIME類型 @Override public String getBodyContentType(){ 返回mmimetype; } //覆蓋getbody()返回多部分主體 @Override public byte [] getbody()拋出authfailureError { 返回mmultipartbody; } //覆蓋parsenetworkresponse()以將響應作為網絡響應解析 @Override 受保護的響應 ParsenetworkResponse(NetworkResponse響應){ 嘗試 { 返迴響應。 回覆, httpheaderparser.parsecacheheaders(響應)); } catch(異常E){ 返迴響應。 ERROR(新的Parseerror(e)); } } //提供響應和錯誤 @Override 受保護的void deliverResponse(網絡響應響應){ mlistener.onresponse(響應); } @Override 公共void deliverror(射線錯誤錯誤){ merrlistener.onerrorresponse(error); } }

構建Multipart Body

; ByTearRayOutputStream bos = new ByTearRayOutputStream(); dataOutputStream dos = new DataOutputStream(BOS); 嘗試 { //文本數據 BuildTextPart(dos,“ name”,“ John Doe”); buildTextPart(dos,“電子郵件”,“ [email protected]”); //圖像數據 bitmap imagebitmap = bitmapfactory.decoderesource(context.getResources(),r.drawable.my_image); buildImagePart(dos,“ image”,imageBitMap); } catch(ioexception e){ e.printstacktrace(); } multipartbody = bos.tobytearray(); 在request

將文本數據添加到請求

導入com.android.volley.networkresponse; 導入com.android.volley.parseerror; 導入com.android.volley.request; 導入com.android.volley.response; 導入com.android.volley.volleyerror; 導入com.android.volley.toolbox.httpheaderparser; 導入java.io.bytearrayoutputstream; 導入java.io.io.dataoutputstream; 導入java.io.ioexception; 導入java.util.hashmap; 導入java.util.map; 公共類Volleymultipartrequest擴展了請求 { 私人最終響應。 listener mlistener; 私人最終響應。 私有最終地圖 mheaders; 私有最終字符串mmimetype; 私人最終字節[] mmultipartbody; public oulymultipartrequest(int方法,字符串url,wendesp.listener 偵聽器, wendmes.Erlistener errorListener){ super(方法,URL,errorListener); this.mlistener =偵聽器; this.merrorlistener = errorListener; this.mheaders = null; this.mmimetype = null; this.mmultipartbody = null; } public vulleymultipartrequest(字符串URL,MAP 標題,字符串Mimetype,byte [] Multipartbody, wendys.listener 偵聽器,響應。 erlistenererrorListener){ super(method.post,url,errorListener); this.mlistener =偵聽器; this.merrorlistener = errorListener; this.mheaders =標題; this.mmimetype = mimeType; this.mmultipartbody = multipartbody; } @Override 公共地圖 getheaders()拋出authfailureError { 返回(mheaders!= null)? mheaders:super.getheaders(); } @Override public String getBodyContentType(){ 返回mmimetype; } @Override public byte [] getbody()拋出authfailureError { 返回mmultipartbody; } @Override 受保護的響應 ParsenetworkResponse(NetworkResponse響應){ 嘗試 { 返迴響應。 回覆, httpheaderparser.parsecacheheaders(響應)); } catch(異常E){ 返迴響應。 ERROR(新的Parseerror(e)); } } @Override 受保護的void deliverResponse(網絡響應響應){ mlistener.onresponse(響應); } @Override 公共void deliverror(射線錯誤錯誤){ merrlistener.onerrorresponse(error); } 公共靜態映射 createMultipartrequestParts(Map params,Map Data){ MAP MultipartParams = new Hashmap (); for(map.entry entry:params.entryset()){ MultiPartParams.put(entry.getKey(),new DataPart(entry.getValue())); } for(map.entry entry:data.entryset()){ MultipartParams.put(entry.getKey(),entry.getValue()); } 返回多派克拉姆; } public static byte [] createMultipartBody(映射 data,string boundare)拋出ioexception { ByTearRayOutputStream bos = new ByTearRayOutputStream(); dataOutputStream dos = new DataOutputStream(BOS); for(map.entry entry:data.entryset()){ buildTextPart(dos,entry.getKey(),entry.getValue()。getContentType(),entry.getValue()。getFilename(),entry.getValue()。getData()。 }

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3