情况描述:在项目中,经常需要在代码中直接访问某个url,当目标url有设置BASIC Authorization 时,代码需要加上用户名和密码方可进行访问,详细如下:
public static String post(String addr, String params) {
String result = "";
try {
URL url = new URL(addr);
URLConnection connection = url.openConnection();
connection.setDoOutput(true);
String auth="gallop:123456";
String code = new sun.misc.BASE64Encoder().encode(auth.getBytes());
connection.setRequestProperty("Authorization", "Basic " + code);
PrintWriter out = new PrintWriter(connection.getOutputStream());
out.write(params);
out.close();
BufferedReader in;
try {
in = new BufferedReader(new InputStreamReader(connection
.getInputStream()));
} catch (FileNotFoundException exception) {
java.io.InputStream err = ((HttpURLConnection) connection)
.getErrorStream();
if (err == null)
throw exception;
in = new BufferedReader(new InputStreamReader(err));
}
StringBuffer response = new StringBuffer();
String line;
while ((line = in.readLine()) != null)
response.append(line + "\n");
in.close();
result = response.toString();
} catch (MalformedURLException e) {
System.err.println(e.toString());
} catch (IOException e) {
System.err.println(e.toString());
}
return result;
}
分享到:
相关推荐
### WebService添加Basic验证详解 在现代Web应用中,安全性和数据保护至关重要。为了确保对外提供的WebService接口不被未授权的第三方访问,一种常见的做法就是在这些接口上实施身份验证机制。其中,Basic验证是一...
这样每次发送请求时,拦截器会自动处理认证头,避免在每个请求中重复编写相同的代码。 ```java public class BasicAuthInterceptor implements ClientHttpRequestInterceptor { private final String username; ...
要使用基本认证访问API,客户端需要在每个请求中添加`Authorization`头部,其值的格式为`Basic base64-encoded(username:password)`。首先,将用户名和密码连接成`username:password`字符串,然后对这个字符串进行...
在Java中,我们可以使用`java.net.URL`和`java.net.HttpURLConnection`类来实现GET请求: ```java URL url = new URL("http://example.com"); HttpURLConnection connection = (HttpURLConnection) url.open...
为了解决CSRF问题,在使用POST方法时,可以先通过GET方法获取CSRF Token,然后将其放入POST请求的HEADER中。 ```java String csrfToken = connection.getHeaderField("X-CSRF-Token"); connPost.setRequestProperty...
常见的方法有: - **Basic Authentication**:通过在HTTP请求头中设置`Authorization`字段,值为"Basic "加上Base64编码的用户名和密码。 - **Crumb机制**:防止跨站请求伪造(CSRF),Jenkins可能需要一个Crumb,...
在实际操作中,可能会遇到一些挑战,如身份验证、请求方法的使用、跨域问题以及错误处理。以下是对这些知识点的详细说明: 1. **身份验证 (401 Unauthorized)** 当接收到401错误时,表示服务器需要有效的身份验证...
例如,使用HttpURLConnection,你可以构建URL、设置请求方法、添加请求头和请求体,然后接收响应。对于复杂的JSON数据操作,可以使用Gson或Jackson库进行序列化和反序列化。 3. **使用HTTP客户端库示例**: - ...
在Java中,`java.net.Authenticator` 类提供了一种机制来处理应用程序尝试访问网络资源时的身份验证请求。此机制允许应用程序在接收到身份验证提示时提供用户名和密码等凭据。 - **定义**:`java.net.Authenticator...
使用`java.sql.DriverManager`类注册Oracle的JDBC驱动,并使用`DriverManager.getConnection()`方法建立数据库连接。连接字符串通常包含数据库URL、用户名和密码,例如: ```java String url = "jdbc:oracle:thin...
这些逻辑可能体现在Controller层的处理方法中,或者Spring Security的定制拦截器中。 此外,SpringBoot还支持Token-based认证,如JWT(JSON Web Tokens)。这种方式可以实现无状态(stateless)的认证,减轻服务器...
在这个项目中,可能有一个名为`PhoneNumberQuery.java`的类,它包含了调用360 API并处理结果的逻辑。代码可能会如下所示: ```java import org.apache.http.HttpEntity; import org.apache....
在IT领域,编程语言如C#、Java、C++、C和.Net框架常常被用于创建自动化脚本或程序,以实现各种系统...但要注意,进行此类操作时必须确保你有权限,并且了解可能的安全风险,因为不恰当的访问可能会导致网络安全问题。
除了Python,其他编程语言如Java也有类似的方法。以下是一个使用Java的HttpURLConnection的例子: ```java import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; public class ...
- **示例代码**: 在`spring-security.xml`中配置自定义拒绝访问页面。 **8. 动态管理资源结合自定义登录页面** - 结合前两节的知识点,实现动态管理资源的同时提供自定义登录界面。 - **示例代码**: 整合动态...
在这个主题中,我们将深入探讨如何使用Java来实现自动登录功能,包括基本原理、常用库的使用以及一些关键的技术点。 首先,理解自动登录的核心在于模拟用户登录过程。在网页登录中,通常涉及以下步骤:发送登录请求...
在本文中,我们将深入探讨如何使用Java调用Bing Search API来搜索关键字。Bing Search API是微软提供的一个服务,允许开发者集成Bing搜索引擎的功能,从而在程序中进行网络搜索。我们将通过一个简单的Java示例代码来...
在Java开发中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于后端服务与前端或者不同服务间的通信。本篇文章将详细介绍如何在Java中实现后台发送和接收JSON数据,这涉及到网络请求、HTTP...
Tomcat使用Jaas(Java Authentication and Authorization Service)来处理这些凭据。 下面,我们将详细介绍如何配置和实施这两种认证方法。 ### Basic认证配置 1. **web.xml配置**:在Tomcat的`conf/web.xml`中,...