zoukankan      html  css  js  c++  java
  • RestTemplate调用接口(附有账号密码)

    private JSONObject Post(String url, String payload, String username, String password) {
            RestTemplate template = new RestTemplate();
            CredentialsProvider provider = new BasicCredentialsProvider();
            UsernamePasswordCredentials credentials = new UsernamePasswordCredentials(username, password);
            provider.setCredentials(AuthScope.ANY, credentials);
            CloseableHttpClient client = HttpClientBuilder.create().setDefaultCredentialsProvider(provider)
                    .useSystemProperties().build();
            HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactoryDigestAuth(client);
            template.setRequestFactory(requestFactory);
            JSONObject jsonObject = JSONObject.fromObject(payload);
            System.out.println(JSON.toJSONString(jsonObject));
            JSONObject resultObj = template.postForObject(url, jsonObject, JSONObject.class);return resultObj;
        }
    import org.apache.http.HttpHost;
    import org.apache.http.client.AuthCache;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.protocol.ClientContext;
    import org.apache.http.impl.auth.DigestScheme;
    import org.apache.http.impl.client.BasicAuthCache;
    import org.apache.http.protocol.BasicHttpContext;
    import org.apache.http.protocol.HttpContext;
    import org.springframework.http.HttpMethod;
    import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
    
    import java.net.URI;
    
    public class HttpComponentsClientHttpRequestFactoryDigestAuth extends HttpComponentsClientHttpRequestFactory {
        public HttpComponentsClientHttpRequestFactoryDigestAuth(HttpClient client) {
            super(client);
        }
    
        @Override
        protected HttpContext createHttpContext(HttpMethod httpMethod, URI uri) {
            return createHttpContext(uri);
        }
    
        private HttpContext createHttpContext(URI uri) {
            // Create AuthCache instance
            AuthCache authCache = new BasicAuthCache();
            // Generate DIGEST scheme object, initialize it and add it to the local auth cache
            DigestScheme digestAuth = new DigestScheme();
            // If we already know the realm name
            //        digestAuth.overrideParamter("realm", "myrealm");
            HttpHost targetHost = new HttpHost(uri.getHost(), uri.getPort());
            authCache.put(targetHost, digestAuth);
    
            // Add AuthCache to the execution context
            BasicHttpContext localcontext = new BasicHttpContext();
            localcontext.setAttribute(ClientContext.AUTH_CACHE, authCache);
            return localcontext;
        }
    }
  • 相关阅读:
    RAID中的Stripe size对性能的影响?
    TCP segmentation offload
    传统网络配置命令与IP高级路由命令
    WebTrends Log Analyzer
    linux使用vi中文乱码的解决办法
    链接静态库的顺序问题
    tcpdump命令格式
    怎样取得文件行数
    Tcpdump命令的使用与示例——linux下的网络分析
    Linux系统面面观 PROC文件系统详细介绍
  • 原文地址:https://www.cnblogs.com/chenmz1995/p/10891590.html
Copyright © 2011-2022 走看看