pide al método de interfaz externa springboot

Directamente en el código:

1, la configuración de definición de clase

org.springframework.context.annotation.Bean importación; 
org.springframework.context.annotation.Configuration importación; 
org.springframework.http.client.ClientHttpRequestFactory importación; 
org.springframework.http.client.SimpleClientHttpRequestFactory importación; 
org.springframework.web.client.RestTemplate importación; 

@Configuration 
public class {HttpApiConfig 
    @Bean 
    pública RestTemplate restTemplate (fábrica ClientHttpRequestFactory) { 
        return new RestTemplate (de fábrica); 
    } 

    @Bean 
    pública ClientHttpRequestFactory simpleClientHttpRequestFactory () {  
        fábrica SimpleClientHttpRequestFactory = new SimpleClientHttpRequestFactory ();
        factory.setReadTimeout (5000); 
        factory.setConnectTimeout (5000);
        fábrica de retorno; 
    } 
}

2, la definición de servicio

org.springframework.http.HttpEntity importación; 
org.springframework.http.HttpHeaders de importación; 
org.springframework.http.MediaType importación; 
org.springframework.http.ResponseEntity importación; 
org.springframework.stereotype.Service importación; 
org.springframework.util.MultiValueMap importación; 
org.springframework.web.client.RestTemplate importación; 

java.util.Map importación; 

@Service 
public class {HttpUtils 

    final privado RestTemplate restTemplate; 

    HttpUtils públicas (RestTemplate restTemplate) { 
        this.restTemplate = restTemplate; 
    } 

    // obtener请求
    cadena GET pública (String url, mapa <String, Object> params) { 
        cadena URI = buildUri (url, params);
        ResponseEntity <cadena> de respuesta = restTemplate.getForEntity (URI, String.class); 
        volver response.getBody (); 
    } 

    // Mensaje请求(JSON请求头) 
    public String JPost (String url, Map <String, Object> params) { 
        HttpEntity <Map <String, Object >> petición = nuevos HttpEntity <> (params, jsonHeaderBuilder ()); 
        ResponseEntity <String> respuesta = restTemplate.postForEntity (url, petición, String.class); 
        volver response.getBody (); 
    } 

    // Mensaje请求(URL请求头) 
    public String UPost (String url, MultiValueMap <String, String> params) {
        HttpEntity <MultiValueMap <String, String >> petición = new HttpEntity <> (params, urlHeaderBuilder ()); 
        ResponseEntity <String> respuesta = restTemplate.postForEntity (url, petición, String.class); 
        volver response.getBody (); 
    } 

    //拼接Url和参数
    privada Cadena buildUri (String url, Map <String, Object> params) { 
        StringBuilder sb = new StringBuilder (url); 
        sb.append ( "?"); 
        para (Map.Entry <String, Object> entrada: params.entrySet ()) { 
            ... sb.append (entry.getKey ()) append ( "=") append (entry.getValue ()) append ( "& "); 
        } 
        Sb.deleteCharAt (sb.length () - 1); 
        volver sb.ToString ();
 
        h.setContentType (MediaType.APPLICATION_FORM_URLENCODED); 
        retorno H; 
    } 

    // acumulación JSON encabezado de solicitud 
    privada HttpHeaders jsonHeaderBuilder () { 
        HttpHeaders nuevos nuevos HttpHeaders H = (); 
        h.setContentType (MediaType.APPLICATION_JSON); 
        retorno H ; 
    } 
}

3, Ejemplo (Referencia)

solicitud POST, el parámetro de URL con el

MultiValueMap <String, String> requestPara = new LinkedMultiValueMap <> (); 
requestPara.add ( "id", id); 
requestPara.add ( "name", nombre); 
StringBuilder sb = new StringBuilder (baseUrl); 
sb.append ( "/ OH / sí"); 
Respuesta String = httpUtils.UPost (sb.ToString (), requestPara);

JAP solicitud GET y se utilizan comúnmente, se añaden parámetros y UPost Del mismo modo, el tipo de cambio.

Map <String, Object> requestPara = new HashMap <> (); 
requestPara.put ( "id", id); 
requestPara.put ( "name", nombre); 
StringBuilder sb = new StringBuilder (baseUrl); 
sb.append ( "/ OH / sí");

 

Supongo que te gusta

Origin www.cnblogs.com/SamNicole1809/p/12610533.html
Recomendado
Clasificación