美文网首页
初识封装(Http)

初识封装(Http)

作者: BridgeXD | 来源:发表于2017-01-02 23:13 被阅读0次

1、方法参数过多时,可用实例类将参数抽取出来,再用构造函数实例化。

eg:
private static HttpURLConnection get(Request request){}

2、暴露给外部一个方法public,其余用private方法,可用枚举。

enum RequestMethod{GET,POST,PUT,DELETE}

switch (request.requestMethod) {
case GET:
case DELETE:
    return get(request);
case POST:
case PUT:
    return post(request);
}

3、可用接口实现回调,实现异步。

4、声明什么样的泛型,返回什么样的Object。

 interface ICallback<T>{
 void Success(T result);
 void Failure(Exception e);
 T parse(HttpURLConnection connection) throws Exception;
 }

5、用接口的实现类抽取多方法的共性。

HttpURLConnection get(Request request){
return httpConnection;
}

request.icallback.parse(httpConnection);

6、去除回调函数不要共同实现的方法(不同Object,不同的实现方法),用抽象类。

public abstract class AbstractCallback<T> implements ICallBack<T> {

@Override
public T parse(HttpURLConnection connection) throws Exception {
    int status = connection.getResponseCode();
    if (status == 200) {
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        InputStream is = connection.getInputStream();
        byte[] buffer = new byte[2048];
        int len;
        while ((len = is.read(buffer)) != -1) {
            out.write(buffer, 0, len);
        }
        is.close();
        out.flush();
        out.close();
        String result = new String(out.toByteArray());

        return bindData(result);

    }
    return null;
}
/**
* 对于一个父类,如果它的某个方法在父类中实现出来没有任何意义,
* 必须根据子类的实际需求来进行不同的实现,
* 那么就可以将这个方法声明为abstract方法,此时这个类也就成为 abstract类了
 */
protected abstract T bindData(String result) throws Exception;

}

相关文章

  • 初识封装(Http)

    1、方法参数过多时,可用实例类将参数抽取出来,再用构造函数实例化。 2、暴露给外部一个方法public,其余用pr...

  • Node.js初探(四)

    1、初识express: 与http模块类似,对http进一步封装,专门用来创建web服务器 服务器:web网站服...

  • 初识HTTP

    初识HTTP HTTP全称“超文本传输协议” 超文本传输协议是一种用于分布式、协作式和超媒体信息系统的应用层协议。...

  • 初识Http

    1,简介 作为一个安卓开发者,从安卓开发的角度学习下HTTP。先来对HTTP有个大概的印象吧,一步一步慢慢了解。 ...

  • springcloud ribbon 的简单使用

    RestTemplate 对http请求通信的封装,封装了http请求,方便的请求http接口。 Ribbon r...

  • 初识HTTP/1.1

    本文为《三万长文50+趣图带你领悟web编程的内功心法》第二个章节。 2、初识HTTP/1.1 接下来我们先来简单...

  • angular http 封装

  • 封装HTTP请求

    每次访问网址,需要配置网络连接的很多属性(e.i. 请求方法、连接超时时间、读取资源超时时间等),很麻烦,所以这里...

  • 封装http请求

    import 'package:dio/dio.dart'; import 'dart:async'; impor...

  • HTTP 请求封装

    前言 我们在做项目的时候经常需要用到HTTP请求,但是org.apache.http.client不满足HTTPS...

网友评论

      本文标题:初识封装(Http)

      本文链接:https://www.haomeiwen.com/subject/glrgvttx.html