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

本文介绍如何使用Java处理带有用户名密码的URL,解决访问时出现401权限问题。通过代码示例展示详细步骤。

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);
		}
}
可以使用 JDBC 连接 MySQL 数据库,然后在 Java 中进行用户名密码验证。以下是一个简单的示例代码: ``` import java.sql.*; public class UserValidation { private static final String DB_URL = "jdbc:mysql://localhost:3306/mydatabase"; private static final String DB_USER = "root"; private static final String DB_PASSWORD = "mypassword"; public static boolean validateUser(String username, String password) { Connection conn = null; PreparedStatement stmt = null; ResultSet rs = null; boolean isValid = false; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD); String sql = "SELECT * FROM users WHERE username=? AND password=?"; stmt = conn.prepareStatement(sql); stmt.setString(1, username); stmt.setString(2, password); rs = stmt.executeQuery(); isValid = rs.next(); } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } finally { try { if (rs != null) { rs.close(); } if (stmt != null) { stmt.close(); } if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } return isValid; } public static void main(String[] args) { String username = "myusername"; String password = "mypassword"; if (validateUser(username, password)) { System.out.println("Valid user"); } else { System.out.println("Invalid user"); } } } ``` 在上面的代码中,`validateUser` 方法接受用户名密码作为参数,并使用 JDBC 连接到 MySQL 数据库。在 `users` 表中查询是否有匹配的用户名密码。如果查询结果存在,则说明用户名密码是有效的,返回 `true`,否则返回 `false`。在 `main` 方法中,我们可以调用 `validateUser` 方法来验证用户。请注意,这只是一个简单的示例,实际应用中需要更加严格的安全措施来保护用户数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值