directorio
descansar estilo habitual
- llegar: como una lista de artículos / limón / proyecto / ToList
- enviar:
- poner: debe haber corporal
- eliminar: Eliminar elementos tales como / limón / proyecto / 18
control de la exposición solicitud interfaz de capa http.
dubbo interfaz de capa de petición de servicio están expuestos.
obtener solicitud
El método para modificar el código ApiServiceImpl.java de ejecución de la siguiente manera:
@Override
public ApiRunResult run(ApiVO apiRunVO){
//远程调用
//http用无参构造,https可以用有参构造
RestTemplate restTemplate = new RestTemplate();
String url = apiRunVO.getHost()+apiRunVO.getUrl();
String method = apiRunVO.getMethod();
List<ApiRequestParam> list = apiRunVO.getRequestParams();
LinkedMultiValueMap<String, String> headers = new LinkedMultiValueMap<String, String>();
LinkedMultiValueMap<String, String> bodyParams = new LinkedMultiValueMap<String, String>();
String paramStr = "?";
for(ApiRequestParam apiRequestParam : list){
if(apiRequestParam.getType()==3){ //头
headers.add(apiRequestParam.getName(), apiRequestParam.getValue());
}else if(apiRequestParam.getType()==1){
paramStr += apiRequestParam.getName()+"="+apiRequestParam.getValue()+"&";
}else{
//body 2 4,注意此时type==1没有处理
bodyParams.add(apiRequestParam.getName(), apiRequestParam.getValue());
}
}
if(!"?".equals(paramStr)){
paramStr = paramStr.substring(0,paramStr.lastIndexOf("&"));
}
System.out.println("1111"+paramStr);
//System.out.println(headers+"\r\n"+bodyParams);
HttpEntity httpEntity = null;
ResponseEntity response = null;
ApiRunResult apiRunResult = new ApiRunResult();
try{
if("get".equalsIgnoreCase(method)){
//httpEntity = new HttpEntity(headers);
httpEntity = new HttpEntity(bodyParams,headers);
response = restTemplate.exchange(url+paramStr,HttpMethod.GET,httpEntity,String.class);
}
else if("post".equalsIgnoreCase(method)){
httpEntity = new HttpEntity(bodyParams,headers);
response = restTemplate.exchange(url,HttpMethod.POST,httpEntity,String.class);
}
apiRunResult.setStatusCode(response.getStatusCodeValue()+"");
HttpHeaders headsResult = response.getHeaders();
//将java转成json的字符串
//第一种方法:jackson
//apiRunResult.setHeaders(new ObjectMapper().writeValueAsString(headsResult));
//第二种方法:fastjson
apiRunResult.setHeaders(JSON.toJSONString(headsResult));
apiRunResult.setBody(response.getBody().toString());
}catch(HttpStatusCodeException e){
//注意此时有调用异常,有body或没有
apiRunResult.setStatusCode(e.getRawStatusCode()+"");
apiRunResult.setHeaders(JSON.toJSONString(e.getResponseHeaders()));
apiRunResult.setBody(e.getResponseBodyAsString());
}
return apiRunResult;
}
solicitud de llamada de interfaz de envío representaciones Get
RestTemplate el envío de HTTP, HTTPS petición
- http con el constructor sin argumentos
- https puede ser configurado con los parámetros, los parámetros de autenticación que hacer una serie SSL
referirse a: RestTemplate el envío de HTTP, HTTPS petición
Agregar la clasificación
Consulte: @RequestBody usando
papel cadena JSON java rotación, por fastjson a girar.
ApiClassificationController.java incremento en el siguiente código:
@PostMapping("/add2")
public Result add2(@RequestBody String jsonStr){
//String[] strArray = jsonStr.split(":");
System.out.println(jsonStr);
String value = jsonStr.substring(jsonStr.indexOf("[")+1,jsonStr.lastIndexOf("]"));
System.out.println(value);
//将jsonStr转成java对象
ApiClassification apiClassification = JSON.parseObject(value, ApiClassification.class);
System.out.println(apiClassification);
apiClassificationService.save(apiClassification);
return new Result("1","新增分类成功");
}