HTTPClient呼叫https請求,通過基本認證使用者名稱密碼(Basic Auth)
阿新 • • 發佈:2019-01-06
本文來源是Apache官網例子:http://hc.apache.org/httpcomponents-client-4.5.x/httpclient/examples/org/apache/http/examples/client/ClientAuthentication.java
之前找過很多部落格上的例子發現都不對,後來還是去官網找。事實證明官網絕對比部落格k
例子:
public static void http() throws Exception { JSONObject obj = new JSONObject(); obj.put("param", "paramValue"); CredentialsProvider credsProvider = new BasicCredentialsProvider(); credsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(userName, password)); CloseableHttpClient createDefault = HttpClients.custom() .setDefaultCredentialsProvider(credsProvider) .build(); HttpPost post = new HttpPost(url); StringEntity entity = new StringEntity(obj.toString(),"utf-8"); entity.setContentEncoding("UTF-8"); entity.setContentType("application/json"); post.setEntity(entity); CloseableHttpResponse result = createDefault.execute(post); int statusCode = result.getStatusLine().getStatusCode(); System.out.println(statusCode); System.out.println("result:" + EntityUtils.toString(result.getEntity())); }
//下面是正常http請求,直接傳送json格式的作為引數傳到伺服器
HttpPost post = new HttpPost(url); //post.setHeader("Content-Type","application/json;charset=utf-8"); StringEntity entity = new StringEntity(obj.toString(),"utf-8"); entity.setContentEncoding("UTF-8"); entity.setContentType("application/json"); post.setEntity(entity); CloseableHttpClient createDefault = HttpClients.createDefault(); CloseableHttpResponse result = createDefault.execute(post); String responseMsg = EntityUtils.toString(result.getEntity(),"UTF-8"));