All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.minlia.iot.requestor.factory.ApiHttpRequestFactory Maven / Gradle / Ivy

package com.minlia.iot.requestor.factory;

import com.minlia.iot.context.ApiRuntimeContext;
import com.minlia.iot.http.ApiHttpExecutor;
import com.minlia.iot.http.FormDataWithJsonApiHttpExecutor;
import com.minlia.iot.http.XmlApiHttpExecutor;
import com.minlia.iot.http.JsonApiHttpExecutor;
import com.minlia.iot.scope.HttpMediaType;
import lombok.Data;

/**
 * Created by will on 9/12/17.
 * 根据请求类型决定使用哪种请求器
 *
 * 区别在于请求时封装的参数不同
 */
@Data
public class ApiHttpRequestFactory {


  public static ApiHttpExecutor create(HttpMediaType mediaType, ApiRuntimeContext context) {

    ApiHttpExecutor request = null;

    //取指定的请求器
    if (null != context.getApiHttpExecutor()) {
      request = context.getApiHttpExecutor();
    } else {
      //进行默认构造, 当还是没有时抛出异常
      switch (mediaType) {
        case Json:
          request = new JsonApiHttpExecutor();
          break;

        case Xml:
          request = new XmlApiHttpExecutor();
          break;

        case Hybrid:
          request = new FormDataWithJsonApiHttpExecutor();
          break;

        default:
          throw new RuntimeException("请指定HTTP请求器");
      }
    }
    return request;
  }


}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy