做直播网站用什么网上空间好dedecms网站建设合同
web/
2025/10/9 11:40:16/
文章来源:
做直播网站用什么网上空间好,dedecms网站建设合同,软件开发平台合同,福州建网站哪家好一个项目中用到的使用Volley上传头像文件的例子#xff0c;供大家参考#xff0c;具体内容如下/*** Created by wangshihui on 2015/11/30.* 上传文件* url#xff1a;.....method#xff1a;post参数#xff1a;file接口给的参数#xff1a;file 就是表单的key#xff…一个项目中用到的使用Volley上传头像文件的例子供大家参考具体内容如下/*** Created by wangshihui on 2015/11/30.* 上传文件* url.....methodpost参数file接口给的参数file 就是表单的key传给mFilePartName;这是个测试类测试上传头像没有问题适合只上传单个文件的场景*/public class MultipartRequest extends Request {private String mHeader;private Map mMap;private String cookieFromResp ;private Map headerMap new HashMap();private MultipartEntity entity new MultipartEntity();private final Response.Listener mListener;private final File mFilePart;private String mFilePartName;/*** param url* param listener* param errorListener* param file_name* param file*/public MultipartRequest(String url, Response.Listener listener, Response.ErrorListener errorListener, String file_name,File file){super(Method.POST, url, errorListener);mListener listener;mFilePart file;mFilePartNamefile_name;buildMultipartEntity();}/*** 添加文件参数*/private void buildMultipartEntity(){entity.addPart(mFilePartName, new FileBody(mFilePart));}Overridepublic String getBodyContentType(){return entity.getContentType().getValue();}Overridepublic byte[] getBody() throws AuthFailureError{ByteArrayOutputStream bos new ByteArrayOutputStream();try{entity.writeTo(bos);}catch (IOException e){VolleyLog.e(IOException writing to ByteArrayOutputStream);}return bos.toByteArray();}/*** param response* return*/Overrideprotected Response parseNetworkResponse(NetworkResponse response){try {JSONObject jsonObject;System.out.println(response.headers.toString());if (response.data.length ! 0) {String jsonString new String(response.data, HttpHeaderParser.parseCharset(response.headers));jsonObject new JSONObject(jsonString);} else {jsonObject new JSONObject();}//获取数据头mHeader response.headers.toString();//提取Cookie(JSESSIONID)Pattern pattern Pattern.compile(Set-Cookie.*?;);Matcher matcher pattern.matcher(mHeader);if (matcher.find()) {cookieFromResp matcher.group();cookieFromResp cookieFromResp.substring(11, cookieFromResp.length() - 1);System.out.println(Cookie: cookieFromResp);}jsonObject.put(Cookie, cookieFromResp);return Response.success(jsonObject,HttpHeaderParser.parseCacheHeaders(response));} catch (UnsupportedEncodingException e) {return Response.error(new ParseError(e));} catch (JSONException je) {return Response.error(new ParseError(je));}}/*** param response*/Overrideprotected void deliverResponse(JSONObject response){mListener.onResponse(response);}Overrideprotected Map getParams() throws AuthFailureError {return mMap;}/*** return* throws AuthFailureError*/Overridepublic Map getHeaders() throws AuthFailureError {return headerMap;}/*** return*/Overridepublic RetryPolicy getRetryPolicy() {RetryPolicy retryPolicy new DefaultRetryPolicy(5000, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT);return retryPolicy;}/*** param cookie*///将Cookie加入数据头public void setSendCookie(String cookie) {headerMap.put(Cookie, cookie);}}调用方法如下//指定url路径String url http://182.92.....;MultipartRequest multipartRequest new MultipartRequest(url, new Response.Listener() {Overridepublic void onResponse(JSONObject response) {saveSessionID(response);}}, new Response.ErrorListener() {Overridepublic void onErrorResponse(VolleyError e) {Log.e(TAG, e.getMessage(), e);try {byte[] htmlBodyBytes e.networkResponse.data;Log.e(TAG, new String(htmlBodyBytes), e);} catch (Exception e1) {e1.printStackTrace();}ToastUtil.showShortToast(UserCenterActivity.this, 网络连接异常);}}, file, mSelectedPictureFile);multipartRequest.setSendCookie(loadSessionID());multipartRequest.setTag(TAG);client.addTask(multipartRequest);private File mSelectedPictureFile;mSelectedPictureFile是一个File文件参数名是file通信成功保存CookiesaveSessionID(response);发送请求上传cookiemultipartRequest.setSendCookie(loadSessionID());client是一个Volley的简单封装protected AsynHttpClient client;public class AsynHttpClient {//volley的请求队列private RequestQueue requestQueue;//保证全局变量是单一的private static AsynHttpClient instance;private Context mContext;private AsynHttpClient(Context context) {requestQueue Volley.newRequestQueue(context);this.mContext context;}/*** 单列模式让AsynHttpClient在整个项目中保持只有一个* param context* return*/public static AsynHttpClient getInstance(Context context) {if (instancenull){synchronized (AsynHttpClient.class){if (instancenull){instancenew AsynHttpClient(context);}}}return instance;}/*** 添加任务到volley的请求队列中去并不会立即执行* param task*/public void addTask(Request task){requestQueue.add(task);}public RequestQueue getRequestQueue() {return requestQueue;}}以上就是本文的全部内容希望对大家的学习有所帮助也希望大家多多支持脚本之家。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/89612.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!