使用 Volley 的多部分 POST 请求且缺少 HttpEntity
在 Android API22 中,HttpEntity 已被弃用并在 API23 中完全删除。本文提供了一个工作示例,用于在不使用 HttpEntity 的情况下使用 Volley 实现 POST 多部分请求。建议的解决方案使用 Asp.Net Web API 进行了测试。
实现详细信息
代码由两个类组成:
MultipartActivity。 java:
MultipartRequest。 java:
附加功能
添加文本部分:
根据提供的代码中的建议,可以使用 getParams() 方法将文本部分添加到多部分请求中:
@Override protected Map<String, String> getParams() { Map<String, String> params = new HashMap<>(); params.put("param1", "value1"); params.put("param2", "value2"); return params; }
可重用性模块化代码:
为了增强可重用性,代码已经重构:
class VolleyMultipartRequest extends Request<NetworkResponse> { // ... other methods @Override protected Map<String, DataPart> getByteData() { // ... code for adding byte parts } }
使用示例:
VolleyMultipartRequest request = new VolleyMultipartRequest(Method.POST, url, new Response.Listener<NetworkResponse>() { // ... listener code }, new Response.ErrorListener() { // ... error listener code }) { @Override protected Map<String, String> getParams() { // ... } @Override protected Map<String, DataPart> getByteData() { // ... } };
以上是删除 HttpEntity 后如何在 Android 中使用 Volley 发出多部分 POST 请求?的详细内容。更多信息请关注PHP中文网其他相关文章!