• 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;
        }
    }
  • 相关阅读:
    MS SQL Server备份与恢复实例
    如何加快查询,优化数据库
    使用索引的误区之一:没有使用复合索引的前导列导致查询不使用索引
    URL重写可删节日期模式正则表达式之强力应用
    索引全攻略
    大数据量分页存储过程效率测试附代码
    形成查询结果(实体框架) 使用导航属性导航关系
    C#开源资源大汇总
    大数据量的系统的数据库结构如何设计?
    数据库查询优化
  • 原文地址:https://www.cnblogs.com/chenmz1995/p/10891590.html
Copyright © 2020-2023  润新知