下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 okhttpokhttp的简单使用,主要包含:get 请求t Http的文件上传 okhttpokhttp的简单使用,主要包含:get 请求t Http的文件上传支持ses:AndroidStudio的用户,可以选择添加: compile com.squareup.okhttp:okhttp:2.4.01EclipsejarokhttphelatestJAR 注意gradle:compilejar地址:okiothelatest(一)Http /okHttpC nt OkHttpC ntmOkHttpC nt =newOkHttpC finalRequestrequest=new/newCa
2、llcall=mOkHttpC publicvoidonResponse(finalResponseresponse)throws/StringhtmlStr requestCall对象,类似于将你的请求封装成了任务,既然execute()cancel()等方法。 Callback requestCall对象,类似于将你的请求封装成了任务,既然execute()cancel()等方法。 Callback 过 response.body().string获取; 如果希望获得返回的二进制字节数组, 则调用response.body().bytes() ; 如 果 你 想 拿 到 返 回 的inpu
3、tStream , 则 调 用 handler 等,例如:publicvoidonResponse(finalResponseresponse)throwsfinalStringres=response.body().string(); runOnUiThread(new Runnable()publicvoidrun()Call有一个(二t RequestRequestrequest=url, new Filefile, new StringfileKey, null); FormEncodingBuilderbuilder=newFormEncodingBuilder();Requestr
4、equest=new.mOkHttpC nt.newCall(request).enqueue(new Request 的构造。 (三)Http RequestBody Requestrequest=new.mOkHttpC nt.newCall(request).enqueue(new Request 的构造。 (三)Http RequestBody RequestBodyrequestBody=new Requestrequest=new.Callcall=mOkHttpC 上述代码向服务器传递了一个键值对和一个文件。通过 其实类似Android (Java)http 下 接下 接下(一)
5、getOkHttpC OkHttpC publicvoidonResponse(String 希望给个url,然后CallBack里面直接操作控件。 OkHttpC newOkHttpC publicvoidonResponse(StringnewOkHttpC newOkHttpC newOkHttpC aram(us rnam , http 中的inputtype=filename=mFilenewOkHttpC newOkHttpC newOkHttpC aram(us rnam , http 中的inputtype=filename=mFilename OkHttpC new OkHt
6、tpC ntManager.ResultCallback() publicvoidonResponse(String , OkHttpC 12 性加载大 Json 字符串,希望客户端回调可以直接拿到对象,于是整合进入了Gson,完善该功能。UserpackagepublicserpublicStringusernamepublicStringpublicserpublicStringusernamepublicStringpublicUser() publicUser(Stringusername,Stringpassword)this.username=username; this.pass
7、word = password;publicStringreturnUserusername=+username+ ,password=+password+ OkHttpC newOkHttpC publicvoidonError(Requestrequest,ExceptionpublicvoidonResponse(User onor方注意:这里做了少许的更新,接口命名从 StringCallback 修改为 ResultCallback。接口中的 onFailure onError。( onor方注意:这里做了少许的更新,接口命名从 StringCallback 修改为 ResultCa
8、llback。接口中的 onFailure onError。(二) User OkHttpC newOkHttpC publicvoidonError(Requestrequest,ExceptionpublicvoidonResponse(ListLog.e(TAG, us.size() + ); List ,ok bug packageimportimport android.os.Handler;importimportimportimportimportimportimport com.squareup.okhttp.Headers;importimportimportcom.squa
9、reup.okhttp.OkHttpC nt; import com.squareup.okhttp.Request;importimportimportimportjava.io.FileOutputStream; import java.io.IOException;importimport java.lang.reflect.Type;importimportimportimport java.util.HashMap;importimportcom.squareup.okhttp.OkHttpC nt; import com.squareup.okhttp.Request;import
10、importimportimportjava.io.FileOutputStream; import java.io.IOException;importimport java.lang.reflect.Type;importimportimportimport java.util.HashMap;importimport*CreatedbyzhyonpublicclassOkHttpC private sicOkHttpC ntManagermInstance; private OkHttpC nt mOkHttpC nt;privateHandlerprivateGson icfinalS
11、tringTAG=OkHttpC privateOkHttpC mOkHttpC nt=newOkHttpC mOkHttpC mGson = new Gson();publicicOkHttpC ntManagerif(mInstance=synchronized(OkHttpCif(mInstance=synchronized(OkHttpC if(mInstance=mInstance=newOkHttpC returnGet* privateResponse_getAsyn(Stringurl)throwsfinalRequestrequest=newCallcall=mOkHttpC
12、 nt.newCall(request); Response execute = call.execute();returnGet* return privateString_getAsString(Stringurl)throwsreturn execute.body().string();get* privatevoid_getAsyn(Stringurl,finalResultCallbackfinalRequestrequest=newget* privatevoid_getAsyn(Stringurl,finalResultCallbackfinalRequestrequest=ne
13、w * t t t(Stringurl,Param.params)throwsRequestrequest= Responseresponse=mOkHttpC return* t t return privateStringtAsString(Stringurl,Param.params)throwsResponseresponse=t(url,return* t * * privatevoidtAsyn(Stringurl,finalResultCallbackcallback,Param.Requestrequest= * * * privatevoidtAsyn(Stringurl,f
14、inalResultCallbackcallback,Param.Requestrequest= * t *param* privatevoidtAsyn(Stringurl,finalResultCallbackcallback,Map Requestrequest= * *t private Response _ t(String url, File files, String fileKeys, Param. params) returnmOkHttpC t(Stringurl,Filefile,StringfileKey)throws returnmOkHttpC returnmOkH
15、ttpC t 的文件上* params)throwsRequestrequest=buildMultipartFormRequest(url,files,fileKeys,params); deliveryResult(callback, request);t 的文件* private void tAsyn(String url, ResultCallback callback, File file, String fileKey) * *t param * *throwsprivate param * *throwsprivate void tAsyn(String url, ResultC
16、allback callback, File file, String fileKey, params)throws * * paramdestFileDir 本地文的文件 private void _downloadAsyn(final String url, final String destFileDir, final finalRequestrequest=newfinalCallcall=mOkHttpC nt.newCall(request); call.enqueue(new Callback()publicvoidonFailure(finalRequestrequest,fi
17、nalIOException InputStreamis=bytebuf=newbyte2048; len = 0;FileOutputStreamfos=is= Filefile=newFile(destFileDir,is= Filefile=newFile(destFileDir,getFileName(url); fos = new FileOutputStream(file);while(len=is.read(buf)!=-/ catch(IOException if(is!=null)catch(IOExceptionif(fos!=null)catch(IOExceptionp
18、rivateStringgetFileName(StringseparatorIndex=return(separatorIndex0)?path:path.substring(separatorIndex+1,* * privatevoid_displayImage(finalImageViewview,finalStringurl,final privatevoid_displayImage(finalImageViewview,finalStringurl,finalRequestrequest=newCallcall=mOkHttpC nt.newCall(request); call
19、.enqueue(new Callback() InputStreamis=null; is= =leSize = catch(IOExceptionresponse=is= leSize=finalBitmapbm=BitmapFactory.decodeStream(is,null,t(newpublicvoidcatch(Exception publicvoidcatch(Exception if(is!=null)catch(IOException t(newpublicvoidpublicicResponsegetAsyn(Stringurl)throwsreturnpublicic
20、StringgetAsString(Stringurl)throwsreturnpublicicvoidgetAsyn(Stringurl,ResultCallback publicreturnpublicicStringgetAsString(Stringurl)throwsreturnpublicicvoidgetAsyn(Stringurl,ResultCallback publicict(Stringurl,Param.params)throwsreturnt(url,publicictAsString(Stringurl,Param.params)throwsreturn publi
21、cictAsyn(Stringurl,finalResultCallbackcallback,Param.tAsyn(url,callback,public ic tAsyn(String url, final ResultCallback callback, tAsyn(url,callback,public ic returnt(String url, File files, String fileKeys, Param. params) t(url,files,fileKeys,publicict(Stringurl,Filefile,StringfileKey)throwsreturn
22、t(url,file,public ic returnt(String url, publicict(Stringurl,Filefile,StringfileKey)throwsreturnt(url,file,public ic returnt(String url, File file, String fileKey, Param. params) t(url,file, public ic tAsyn(String url, ResultCallback callback, File files, String tAsyn(url,callback,files,fileKeys,pub
23、lic ic tAsyn(String url, ResultCallback callback, File file, String fileKey) tAsyn(url,callback,file,publicictAsyn(Stringurl,ResultCallbackcallback,Filefile,StringfileKey,params)throws public ic void displayImage(final ImageView view, String errorResId) public publicicvoiddownloadAsyn(Stringurl,Stri
24、ngdestDir,ResultCallback params=MultipartBuilderbuilder=newforaram params=MultipartBuilderbuilder=newforaram:param.key+if(files!= ody=fori=0;ifiles.length;Filefile=StringfileName=ody = /TODO form-data; name= + fileKeysi + ; filename= fileName+RequestBodyrequestBody=returnnew. FileNameMapfileNameMap=
25、URLConnection.getFileNameMap(); String contentTypeFor = fileNameMap.getContentTypeFor(path); returnif(params= FileNameMapfileNameMap=URLConnection.getFileNameMap(); String contentTypeFor = fileNameMap.getContentTypeFor(path); returnif(params=returnelsereturn if (params = null) return nesize = params.size();Paramres=ntryentries=i = forntryentry:resi+=return icfinalString icfinalString_KEY=Key=privateMaps=newHashMapString, mOkHttpC nt.newCall(request).enqueue(newpublicvoidonFailure(finalRequestrequest,finalIOExc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 扶贫房转让合同协议书
- 工地员工协议合同范本
- 幼儿园顶岗合同协议书
- 建筑公司个人合同范本
- 工程咨询管理合同范本
- 建筑公司投标合同范本
- 承包绘画合作合同范本
- 市区路网测量合同范本
- 工地土方清运合同范本
- 工程发包服务合同范本
- 2026国企综合基础知识题库(附答案)
- 王昭君课件教学课件
- 债权人合同范本
- 易错点2.2摩擦力(解析版)高考易错点解读和针对训练
- 2025至2030丝苗米市场行业发展趋势分析与未来投资战略咨询研究报告
- 2026年教师资格之中学教育知识与能力考试题库300道含答案(a卷)
- 2025仁怀市公共交通服务有限公司招聘招聘141人考试笔试备考试题及答案解析
- 2026年电商评价管理策略与产品口碑优化实操手册
- 《短视频制作与运营》教案 项目5 短视频剪辑 (剪映)
- 小学STEM综合活动教学设计方案
- 2023年和田地区直遴选考试真题汇编附答案解析
评论
0/150
提交评论