REM:
1. 增加华为处置设备
2.更新Restful公共接口
This commit is contained in:
chenlinghy 2020-11-16 16:36:22 +08:00
parent 6501d1b150
commit 8fa78111db
4 changed files with 198 additions and 0 deletions

View File

@ -2,6 +2,7 @@ package com.dispose.restful;
import cn.hutool.http.Header; import cn.hutool.http.Header;
import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import com.dispose.common.ConstValue; import com.dispose.common.ConstValue;
import com.dispose.pojo.dto.protocol.base.ProtocolRespDTO; import com.dispose.pojo.dto.protocol.base.ProtocolRespDTO;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
@ -74,6 +75,60 @@ public class RestfulInterface {
.execute().body(); .execute().body();
} }
/**
* Gets http response.
*
* @param url the url
* @param header the header
* @return the http response
*/
private static HttpResponse getHttpResp(String url, Map<String, String> header) {
HttpRequest.setGlobalTimeout(timeOutValue);
return HttpRequest.get(url).header(Header.CONTENT_TYPE, "application/json").addHeaders(header)
.execute();
}
/**
* Put http response.
*
* @param url the url
* @param header the header
* @param body the body
* @return the http response
*/
private static HttpResponse putHttpResp(String url, Map<String, String> header, String body) {
HttpRequest.setGlobalTimeout(timeOutValue);
return HttpRequest.put(url).header(Header.CONTENT_TYPE, "application/json").addHeaders(header).body(body)
.execute();
}
/**
* Post http response.
*
* @param url the url
* @param header the header
* @param body the body
* @return the http response
*/
private static HttpResponse postHttpResp(String url, Map<String, String> header, String body) {
HttpRequest.setGlobalTimeout(timeOutValue);
return HttpRequest.post(url).header(Header.CONTENT_TYPE, "application/json").addHeaders(header).body(body)
.execute();
}
/**
* Deletes http response.
*
* @param url the url
* @param header the header
* @return the http response
*/
private static HttpResponse deleteHttpResp(String url, Map<String, String> header, String body) {
HttpRequest.setGlobalTimeout(timeOutValue);
return HttpRequest.delete(url).header(Header.CONTENT_TYPE, "application/json").addHeaders(header).body(body)
.execute();
}
/** /**
* Protocol run t. * Protocol run t.
* *
@ -171,6 +226,65 @@ public class RestfulInterface {
} }
} }
/**
* huawei pro run protocol resp dto.
*
* @param <E> the type parameter
* @param url the url
* @param token the token
* @param obj the obj
* @param reqType the req type
* @return the t
*/
public static <E> HttpResponse huaWeiProRun(String url, String token, E obj, RequestMethod reqType) {
try {
HttpResponse svrResp = null;
Map<String, String> httpHeadMap = new HashMap<>(2);
httpHeadMap.put(String.valueOf(Header.CONNECTION), "keep-alive");
httpHeadMap.put(String.valueOf(Header.ACCEPT), "*/*");
if (token != null && token.length() > 0) {
httpHeadMap.put("X-Auth-Token", token);
}
String reqJson = OBJECT_MAPPER.writeValueAsString(obj);
log.debug("Restful request: {}, {}: {}", url, token, reqJson);
switch (reqType) {
case GET:
svrResp = getHttpResp(url, httpHeadMap);
break;
case POST:
svrResp = postHttpResp(url, httpHeadMap, reqJson);
break;
case PUT:
svrResp = putHttpResp(url, httpHeadMap, reqJson);
break;
case DELETE:
svrResp = deleteHttpResp(url, httpHeadMap, reqJson);
break;
default:
log.error("Unknown method: {}", reqType);
break;
}
if (svrResp == null) {
log.debug("Server return null: {}", url);
return null;
}
log.debug("Restful response: {}, {}: {}", url, token, svrResp.body());
return svrResp;
} catch (JsonProcessingException e) {
log.info("System exception: ", e);
return null;
}
}
/** /**
* Create resp type type. * Create resp type type.
* *

View File

@ -0,0 +1,30 @@
package com.huawei.dispose.common;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* The type Hua wei login req.
*
* @author <chenlinghy@cmhi.chinamoblie.com>
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@JsonPropertyOrder({"username", "password"})
@JsonInclude(JsonInclude.Include.NON_NULL)
public class HuaWeiLoginReq {
/**
* The User name.
*/
private String username;
/**
* The Password.
*/
private String password;
}

View File

@ -0,0 +1,26 @@
package com.huawei.dispose.common;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
/**
* The type Hua wei login rsp.
*
* @author <huangxin@cmhi.chinamoblie.com>
*/
@EqualsAndHashCode()
@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonPropertyOrder({"token"})
@JsonInclude(JsonInclude.Include.NON_NULL)
public class HuaWeiLoginResp {
/**
* The Token.
*/
private String token;
}

View File

@ -0,0 +1,28 @@
package com.huawei.dispose.protocol;
import cn.hutool.http.HttpResponse;
import com.dispose.restful.RestfulInterface;
import com.huawei.dispose.common.HuaWeiLoginReq;
import org.springframework.web.bind.annotation.RequestMethod;
/**
* The type Hua Wei interface.
*
* @author <chenlinghy@cmhi.chinamoblie.com>
*/
public class HuaWeiInterface {
/**
* Login protocol resp dto.
*
* @param baseUrlPath the base url path
* @param username the username
* @param password the password
* @return the http resp
*/
public HttpResponse auth(String baseUrlPath, String username, String password) {
return RestfulInterface.huaWeiProRun(baseUrlPath + "/auth",
null,
new HuaWeiLoginReq(username, password),
RequestMethod.POST);
}
}