三方使用okhttp的总结_第1页
三方使用okhttp的总结_第2页
三方使用okhttp的总结_第3页
三方使用okhttp的总结_第4页
三方使用okhttp的总结_第5页
免费预览已结束,剩余18页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论