
我正在按照解决方案从How to multipart data using Android Volley使用volley发送多部分请求.但是,自SDK 22起,httpentity已弃用,并且已在SDK 23上完全删除.
解决方案是使用openConnection,就像HttpEntity is deprecated on Android now,what’s the alternative?一样,但我不知道如何将它用于多部分请求最佳答案我找到了一个解决方案(基于
Multipart/form-data requests in Android: HttpURLConnection vs OkHttp )
这是我的工作示例代码(使用ASP.Net WebAPI测试)
MultipartActivity.java
package com.example.volleyapp;import androID.app.Activity;import androID.content.Context;import androID.graphics.Bitmap;import androID.graphics.drawable.BitmapDrawable;import androID.graphics.drawable.Drawable;import androID.os.Bundle;import androID.support.v4.content.ContextCompat;import androID.vIEw.Menu;import androID.vIEw.MenuItem;import com.androID.volley.AuthFailureError;import com.androID.volley.NetworkResponse;import com.androID.volley.Response;import com.androID.volley.VolleyError;import com.example.volleyapp.BaseVolleyRequest;import com.example.volleyapp.VolleySingleton;import java.io.ByteArrayinputStream;import java.io.ByteArrayOutputStream;import java.io.DataOutputStream;import java.io.IOException;public class MultipartActivity extends Activity { final Context mContext = this; String mimeType; DataOutputStream dos = null; String lineEnd = "\r\n"; String boundary = "apiclient-" + System.currentTimeMillis(); String twoHyphens = "--"; int bytesRead,bytesAvailable,bufferSize; byte[] buffer; int maxBufferSize = 1024 * 1024; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_multipart); Drawable drawable = ContextCompat.getDrawable(mContext,R.drawable.ic_action_file_attachment_light); Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap(); ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.PNG,100,byteArrayOutputStream); final byte[] bitmapData = byteArrayOutputStream.toByteArray(); String url = "http://192.168.1.100/API/postfile"; mimeType = "multipart/form-data;boundary=" + boundary; BaseVolleyRequest baseVolleyRequest = new BaseVolleyRequest(1,url,new Response.ListenerBaseVolleyRequest.java:
package com.example.volleyapp;import com.androID.volley.NetworkResponse;import com.androID.volley.ParseError;import com.androID.volley.Request;import com.androID.volley.Response;import com.androID.volley.VolleyError;import com.androID.volley.toolBox.httpheaderParser;import com.Google.gson.JsonSyntaxException;public class BaseVolleyRequest extends Request 总结 以上是内存溢出为你收集整理的android – 如何在没有HttpEntity的情况下使用Volley发送多部分请求?全部内容,希望文章能够帮你解决android – 如何在没有HttpEntity的情况下使用Volley发送多部分请求?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)