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

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

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

[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()。 }

最新教學 更多>
  • 在JavaScript中如何並發運行異步操作並正確處理錯誤?
    在JavaScript中如何並發運行異步操作並正確處理錯誤?
    同意操作execution 在執行asynchronous操作時,相關的代碼段落會遇到一個問題,當執行asynchronous操作:此實現在啟動下一個操作之前依次等待每個操作的完成。要啟用並發執行,需要進行修改的方法。 第一個解決方案試圖通過獲得每個操作的承諾來解決此問題,然後單獨等待它們: c...
    程式設計 發佈於2025-07-20
  • 如何使用Depimal.parse()中的指數表示法中的數字?
    如何使用Depimal.parse()中的指數表示法中的數字?
    在嘗試使用Decimal.parse(“ 1.2345e-02”中的指數符號表示法表示的字符串時,您可能會遇到錯誤。這是因為默認解析方法無法識別指數符號。 成功解析這樣的字符串,您需要明確指定它代表浮點數。您可以使用numbersTyles.Float樣式進行此操作,如下所示:[&& && && ...
    程式設計 發佈於2025-07-20
  • 如何在其容器中為DIV創建平滑的左右CSS動畫?
    如何在其容器中為DIV創建平滑的左右CSS動畫?
    通用CSS動畫,用於左右運動 ,我們將探索創建一個通用的CSS動畫,以向左和右移動DIV,從而到達其容器的邊緣。該動畫可以應用於具有絕對定位的任何div,無論其未知長度如何。 問題:使用左直接導致瞬時消失 更加流暢的解決方案:混合轉換和左 [並實現平穩的,線性的運動,我們介紹了線性的轉換。...
    程式設計 發佈於2025-07-20
  • 在C#中如何高效重複字符串字符用於縮進?
    在C#中如何高效重複字符串字符用於縮進?
    在基於項目的深度下固定字符串時,重複一個字符串以進行凹痕,很方便有效地有一種有效的方法來返回字符串重複指定的次數的字符串。使用指定的次數。 constructor 這將返回字符串“ -----”。 字符串凹痕= new String(' - ',depth); console.W...
    程式設計 發佈於2025-07-20
  • \“(1)vs.(;;):編譯器優化是否消除了性能差異?\”
    \“(1)vs.(;;):編譯器優化是否消除了性能差異?\”
    答案: 在大多數現代編譯器中,while(1)和(1)和(;;)之間沒有性能差異。編譯器: perl: 1 輸入 - > 2 2 NextState(Main 2 -E:1)V-> 3 9 Leaveloop VK/2-> A 3 toterloop(next-> 8 last-> 9 ...
    程式設計 發佈於2025-07-20
  • PHP SimpleXML解析帶命名空間冒號的XML方法
    PHP SimpleXML解析帶命名空間冒號的XML方法
    在php 很少,請使用該限制很大,很少有很高。例如:這種技術可確保可以通過遍歷XML樹和使用兒童()方法()方法的XML樹和切換名稱空間來訪問名稱空間內的元素。
    程式設計 發佈於2025-07-20
  • C++20 Consteval函數中模板參數能否依賴於函數參數?
    C++20 Consteval函數中模板參數能否依賴於函數參數?
    [ consteval函數和模板參數依賴於函數參數在C 17中,模板參數不能依賴一個函數參數,因為編譯器仍然需要對非contexexpr futcoriations contim at contexpr function進行評估。 compile time。 C 20引入恆定函數,必須在編譯時進...
    程式設計 發佈於2025-07-20
  • 如何在GO編譯器中自定義編譯優化?
    如何在GO編譯器中自定義編譯優化?
    在GO編譯器中自定義編譯優化 GO中的默認編譯過程遵循特定的優化策略。 However, users may need to adjust these optimizations for specific requirements.Optimization Control in Go Compi...
    程式設計 發佈於2025-07-20
  • 如何在JavaScript對像中動態設置鍵?
    如何在JavaScript對像中動態設置鍵?
    在嘗試為JavaScript對象創建動態鍵時,如何使用此Syntax jsObj['key' i] = 'example' 1;不工作。正確的方法採用方括號: jsobj ['key''i] ='example'1; 在JavaScript中,數組是一...
    程式設計 發佈於2025-07-20
  • 在PHP中如何高效檢測空數組?
    在PHP中如何高效檢測空數組?
    在PHP 中檢查一個空數組可以通過各種方法在PHP中確定一個空數組。如果需要驗證任何數組元素的存在,則PHP的鬆散鍵入允許對數組本身進行直接評估:一種更嚴格的方法涉及使用count()函數: if(count(count($ playerList)=== 0){ //列表為空。 } 對...
    程式設計 發佈於2025-07-20
  • PHP與C++函數重載處理的區別
    PHP與C++函數重載處理的區別
    作為經驗豐富的C開發人員脫離謎題,您可能會遇到功能超載的概念。這個概念雖然在C中普遍,但在PHP中構成了獨特的挑戰。讓我們深入研究PHP功能過載的複雜性,並探索其提供的可能性。 在PHP中理解php的方法在PHP中,函數超載的概念(如C等語言)不存在。函數簽名僅由其名稱定義,而與他們的參數列表無關...
    程式設計 發佈於2025-07-20
  • Java是否允許多種返回類型:仔細研究通用方法?
    Java是否允許多種返回類型:仔細研究通用方法?
    在Java中的多個返回類型:一種誤解類型:在Java編程中揭示,在Java編程中,Peculiar方法簽名可能會出現,可能會出現,使開發人員陷入困境,使開發人員陷入困境。 getResult(string s); ,其中foo是自定義類。該方法聲明似乎擁有兩種返回類型:列表和E。但這確實是如此嗎...
    程式設計 發佈於2025-07-20
  • 如何干淨地刪除匿名JavaScript事件處理程序?
    如何干淨地刪除匿名JavaScript事件處理程序?
    刪除匿名事件偵聽器將匿名事件偵聽器添加到元素中會提供靈活性和簡單性,但是當需要刪除它們時,可以構成挑戰,而無需替換元素本身就可以替換一個問題。 element? element.addeventlistener(event,function(){/在這里工作/},false); 要解決此問題,請...
    程式設計 發佈於2025-07-20
  • Java的Map.Entry和SimpleEntry如何簡化鍵值對管理?
    Java的Map.Entry和SimpleEntry如何簡化鍵值對管理?
    A Comprehensive Collection for Value Pairs: Introducing Java's Map.Entry and SimpleEntryIn Java, when defining a collection where each element com...
    程式設計 發佈於2025-07-20
  • 如何使用“ JSON”軟件包解析JSON陣列?
    如何使用“ JSON”軟件包解析JSON陣列?
    parsing JSON與JSON軟件包 QUALDALS:考慮以下go代碼:字符串 } func main(){ datajson:=`[“ 1”,“ 2”,“ 3”]`` arr:= jsontype {} 摘要:= = json.unmarshal([] byte(...
    程式設計 發佈於2025-07-20

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

Copyright© 2022 湘ICP备2022001581号-3