Serie de Desarrollo de pruebas - función de transmisión de interfaz (dos, las peticiones GET y solicitud JSON)

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

Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción

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","新增分类成功");
	}
Publicado 27 artículos originales · ganado elogios 1 · vistas 1645

Supongo que te gusta

Origin blog.csdn.net/anniewhite/article/details/104873635
Recomendado
Clasificación