Java访问用户名密码验证的url

引言

有些url带有用户名密码,我们直接用curl或者wget访问的时候出现401,没有访问权限。这时我们就需要对url进行必要的权限处理

代码解释

private static String Post1(String url, String hexString) throws IOException {
          
   
		CloseableHttpClient client = HttpClients.createDefault();
		HttpPost get = new HttpPost(url);
		StringEntity stringEntity = new StringEntity("json="+hexString);
		stringEntity.setContentType("application/x-www-form-urlencoded");
		get.setEntity(stringEntity);
		ProtocolVersion protocolVersion = get.getProtocolVersion();
		System.out.println(protocolVersion.getProtocol());
		try {
          
   
			//该网页需要认证(用户名、密码)
			HttpClientContext context = new HttpClientContext();
			CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
			credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials("admin", "admin"));
			context.setCredentialsProvider(credentialsProvider);
			CloseableHttpResponse execute = client.execute(get, context);
			//----以下一样
			HttpEntity entity = execute.getEntity();
			InputStream in = entity.getContent();
			StringBuilder builder = new StringBuilder();
			BufferedReader bufreader = new BufferedReader(new InputStreamReader(in));
			for (String temp = bufreader.readLine(); temp != null; temp = bufreader.readLine()) {
          
   
				builder.append(temp);
			}
			return builder.toString();
		} catch (ClientProtocolException e) {
          
   
			throw new RuntimeException(e);
		} catch (IOException e) {
          
   
			throw new RuntimeException(e);
		}
}
经验分享 程序员 微信小程序 职场和发展