Android网络开发之OkHttp--基本用法实例化各个对象

1、实例化OkHttpClient对象,OkHttpClient包含了以下属性,以及set()和get()方法。但并没有包含具体的执行方法,详情见源码。

  //实例化OkHttpClent对象
  private OkHttpClient client = new OkHttpClient();
  private static SSLSocketFactory defaultSslSocketFactory;
  private final RouteDatabase routeDatabase;
  private Dispatcher dispatcher;
  private Proxy proxy;
  private List<Protocol> protocols;
  private List<ConnectionSpec> connectionSpecs;
  private final List<Interceptor> interceptors = new ArrayList<>();
  private final List<Interceptor> networkInterceptors = new ArrayList<>();
  private ProxySelector proxySelector;
  private CookieHandler cookieHandler;

  /** Non-null if this client is caching; possibly by {@code cache}. */
  private InternalCache internalCache;
  private Cache cache;

  private SocketFactory socketFactory;
  private SSLSocketFactory sslSocketFactory;
  private HostnameVerifier hostnameVerifier;
  private CertificatePinner certificatePinner;
  private Authenticator authenticator;
  private ConnectionPool connectionPool;
  private Network network;
  private boolean followSslRedirects = true;
  private boolean followRedirects = true;
  private boolean retryOnConnectionFailure = true;
  private int connectTimeout = 10_000;
  private int readTimeout = 10_000;
  private int writeTimeout = 10_000;

2、实例化Request对象,大家可以参考Request源码。

(1)、大家可以先查考--java builder模式 http://www.cnblogs.com/moonz-wu/archive/2011/01/11/1932473.html

(2)、Request、Response即采用了Builder模式。

(3)、Request包含了HttpUrl、Method、Headers、RequestBody、Tag等参数。以及httpUrl()、method()、headers()、body()、tag()等方法(类似于get()方法)。

(4)、并没有包含有关网络操作和其他操作的方法。

3、实例化RequestBody方法,大家可以参考RequestBody源码。

(1)、第一可以通过RequestBody内部静态方法实现。

RequestBody body = RequestBody.create(final MediaType contentType, final ByteString content);

(2)、第二可以通过重写RequestBody的writeTo()和contentType()方法。

RequestBody body = new RequestBody() {

            @Override
            public void writeTo(BufferedSink arg0) throws IOException {
                // TODO Auto-generated method stub

            }

            @Override
            public MediaType contentType() {
                // TODO Auto-generated method stub
                return null;
            }
        };
时间: 2024-08-07 04:31:51

Android网络开发之OkHttp--基本用法实例化各个对象的相关文章

Android网络开发之OkHttp--基本用法GET

1.OkHttp框架使用了OkIo框架,不要忘记下OkIo.jar 2.通过同步GET访问网络,主要分为四步: (1).声明并实例化一个OkHttpClient对象. (2).声明并实例化一个Request对象,并设置URL等参数. (3).执行Request请求,并获得一个Response对象. (4).根据Response的isSuccessful()方法,判断是否成功,然后从Response对象中获取返回数据. 3.通过异步GET访问网络和同步GET是一样的,不过处理返回数据实在CallB

Android网络开发之OkHttp--基本用法POST

1.OkHttp框架使用了OkIo框架,不要忘记下OkIo.jar 2.通过POST访问网络,和通过GET访问网络基本相同,多了设置请求参数的过程.主要分为五步: (1).声明并实例化一个OkHttpClient对象 (2).声明并实例化一个RequestBody对象 (3).声明并实例化一个Request对象 (4).执行Request请求,并得到一个Response对象 (5).根据Response的isSuccessful()方法判断是否成功,然后从Response对象中获取返回数据. 3

Android网络开发之Volley--Volley基本用法(三)

1.ImageRequest用法和StringRequest一样,主要分为3步: (1).实例化一个RequestQueue对象 (2).设置ImageRequest对象参数,并将ImageRequest对象加入RequestQueue队列 (3).执行start()方法 2.ImageLoader用法 (1).实例化一个RequestQueue对象 (2).实例化一个ImageLoader对象 (3).实例化一个ImageListener对象 (4).执行ImageLoader对象的get()

Android网络开发之Volley--Volley基本用法(一)

1.StringRequest用法 主要分为3步: (1).实例化一个RequestQueue对象 (2).设置StringRequest对象参数,并将StringRequest对象加入RequestQueue队列 (3).执行start()方法 public class StringActivity extends Activity { private TextView mTvShow; private RequestQueue requestQueue; @Override protecte

Android网络开发之用tcpdump抓包

Android开发过程中,当涉及到网络通信的时候,有一些字段需要抓包获取.我之前因为SSDP设备发现的包头格式没有写对,经过抓包分析和标准包头对比发现了这个困扰我很久的问题.总之,掌握在Android手机里面抓包是很有必要的. 准备工作:Android系统的手机,网络环境,tcpdump,破解手机root权限,建议最好在手机里面安装RE文件管理器并且给root权限.具体步骤如下: 首先,通过adb工具将tcpdump推送到手机,tcpdump的下载地址为:http://www.strazzere

Android网络开发之WIFI

WIFI就是一种无线联网技术,常见的是使用无线路由器.那么在这个无线路由器的信号覆盖的范围内都可以采用WIFI连接的方式进行联网.如果无线路由器连接了一个ADSL线路或其他的联网线路,则又被称为"热点".        在Android中对Wifi操作,android本身提供了一些有用的包,在android.net.wifi包下面,主要包括以下几个类和接口:   1.ScanResult    主要用来描述已经检测出的接入点,包括接入点的地址,接入点的名称,身份认证,频率,信号强度等信

android开发之synchronized的用法

android开发之synchronized的用法 在android开发中synchronized主要有四种用法.第一是在方法声明时使用:第二是在对某一代码块时使用:第三是对某一对象使用:第四是对某一类使用.具体的实现代码如下: 1.方法声明时使用 放在范围操作符(public等)之后,返回类型声明(void等)之前.这时,线程获得的是成员锁,即一次只能有一个线程进入该方法,其他线程要想在此时调用该方法,只能排队等候,当前线程(就是在synchronized方法内部的线程)执行完该方法后,别的线

Android 安全开发之 ZIP 文件目录遍历

1.ZIP文件目录遍历简介 因为ZIP压缩包文件中允许存在"../"的字符串,攻击者可以利用多个"../"在解压时改变ZIP包中某个文件的存放位置,覆盖掉应用原有的文件.如果被覆盖掉的文件是动态链接so.dex或者odex文件,轻则产生本地拒绝服务漏洞,影响应用的可用性,重则可能造成任意代码执行漏洞,危害用户的设备安全和信息安全.比如近段时间发现的"寄生兽"漏洞.海豚浏览器远程命令执行漏洞.三星默认输入法远程代码执行漏洞等都与ZIP文件目录遍历有

Android快速开发之appBase——(6).HttpReq和APICloudSDK

Android快速开发之appBase--(6).HttpReq和APICloudSDK HttpReq和APICloudSDK都是网络请求组件,都是基于xUtils的HttpUtils重新封装的.接下来讲一下使用方法. 1.HttpReq 看以看到有这么几个方法 GET:GET方式请求 POST:普通的POST表单提交 POST:将数据以流的形式传递 /** * POST请求,用InputStream的方式传递请求参数 * * @param api * 接口地址 * @param reques