1. 程式人生 > >HTTPClient呼叫https請求,通過基本認證使用者名稱密碼(Basic Auth)

HTTPClient呼叫https請求,通過基本認證使用者名稱密碼(Basic Auth)

本文來源是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"));