首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Apache httpclient 4.5.3 SPNEGO握手不存储cookie

Apache HttpClient是一个开源的Java库,用于处理HTTP请求和响应。它提供了丰富的功能,包括支持SPNEGO握手。

SPNEGO(Simple and Protected GSSAPI Negotiation Mechanism)是一种用于在客户端和服务器之间进行身份验证和安全通信的协议。它基于GSSAPI(Generic Security Services Application Programming Interface)框架,允许客户端和服务器使用安全凭据进行互相认证,并建立安全的通信通道。

在Apache HttpClient 4.5.3中,SPNEGO握手过程不会存储cookie。Cookie是一种用于在客户端和服务器之间跟踪会话状态的机制,但在SPNEGO握手中,身份验证和安全通信是基于GSSAPI的,不需要使用cookie来跟踪会话状态。

Apache HttpClient提供了一系列的类和方法,用于执行SPNEGO握手和处理HTTP请求和响应。你可以使用HttpClient的HttpClientBuilder类来创建一个自定义的CloseableHttpClient实例,并通过设置相关的参数来启用SPNEGO握手。

以下是一个示例代码,展示了如何使用Apache HttpClient 4.5.3执行SPNEGO握手:

代码语言:java
复制
import org.apache.http.auth.AuthSchemeProvider;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.config.AuthSchemes;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.config.Registry;
import org.apache.http.config.RegistryBuilder;
import org.apache.http.impl.auth.SPNegoSchemeFactory;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;

public class SPNEGOExample {
    public static void main(String[] args) throws Exception {
        // 创建SPNEGO认证方案提供者
        AuthSchemeProvider spnegoAuthSchemeProvider = new SPNegoSchemeFactory();

        // 创建认证凭据提供者
        CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
        credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials("username", "password"));

        // 创建认证方案注册表
        Registry<AuthSchemeProvider> authSchemeRegistry = RegistryBuilder.<AuthSchemeProvider>create()
                .register(AuthSchemes.SPNEGO, spnegoAuthSchemeProvider)
                .build();

        // 创建HttpClient实例
        CloseableHttpClient httpClient = HttpClients.custom()
                .setDefaultAuthSchemeRegistry(authSchemeRegistry)
                .setDefaultCredentialsProvider(credentialsProvider)
                .build();

        // 创建HTTP GET请求
        HttpGet httpGet = new HttpGet("http://example.com/api/resource");

        // 设置请求配置
        RequestConfig requestConfig = RequestConfig.custom()
                .setTargetPreferredAuthSchemes(Arrays.asList(AuthSchemes.SPNEGO))
                .build();
        httpGet.setConfig(requestConfig);

        // 执行请求
        CloseableHttpResponse response = httpClient.execute(httpGet);

        // 处理响应
        // ...

        // 关闭HttpClient和响应
        response.close();
        httpClient.close();
    }
}

在上述示例中,我们创建了一个自定义的CloseableHttpClient实例,并启用了SPNEGO握手。我们还设置了认证凭据提供者,以便在握手过程中提供用户名和密码。然后,我们创建了一个HTTP GET请求,并执行该请求。最后,我们处理响应并关闭HttpClient和响应。

对于Apache HttpClient的更多详细信息和使用方法,你可以参考腾讯云的相关产品和文档:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

HttpClient详细解释

org.apache.commons.httpclient.HttpClient与org.apache.http.client.HttpClient的区别 [java] view plain...HttpClient已经应用在很多的项目中,比如Apache Jakarta上很著名的另外两个开源项目Cactus和HTMLUnit都使用了HttpClient。...自动处理Set-Cookie中的Cookie。 11. 插件式的自定义Cookie策略。 12. Request的输出流可以避免流中内容直接缓冲到socket服务器。 13....源代码基于Apache License 可免费获取。 三、使用方法 使用HttpClient发送请求、接收响应很简单,一般需要如下几步即可。 1. 创建HttpClient对象。 2....本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

1.3K20

微博爬虫“免登录”技巧详解及 Java 实现(业余草的博客)

现在的微博即便在登录的状态下,依然可以看到很多微博信息流,而我们的落脚点就在这里。...本文详细介绍如何获取相关的Cookie并重新封装Httpclient达到免登录的目的,以支持微博上的各项数据抓取任务。下面就从微博首页http://weibo.com开始。...二、准备工作 准备工作很简单,一个现代浏览器(你知道我为什么会写”现代”两个字),以及httpclient(我用的版本是4.5.3) 跟登录爬虫一样,免登录爬虫也是需要装载Cookie。...最后我们用上面两个Cookie装载到HttpClient中请求一次weibo.com,就可以获得完整的html页面了,下面就是见证奇迹的时刻: <!...; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import

2.3K50

七大主流的HttpClient程序比较

优点 缺点 HttpURLConnection jdk自带、原始、简单 无连接池、性能与效率相对较低、高级功能不方便使用,一般来说建议使用。...3、Apache HttpClient 在Android中,AndroidSDK中集成了ApacheHttpClient模块,HttpClient就是一个增强版的HttpURLConnection,它只是关注于如何发送请求...okHttp的优势: 链接复用 Response 缓存和 Cookie 默认 GZIP 请求失败自动重连 DNS 扩展 Http2/SPDY/WebSocket 协议支持 默认情况下,OKHttp会自动处理常见的网络问题...:像二次连接、SSL的握手问题。...可以不依赖注册中心独立运行 总结 在你还在纠结选择apache httpclient时,Android已经不用它了,改用okhttp了 当你还在纠结选择apache httpclient还是okhttp

40920

RestTemplate进阶:打开Basic Authorization的正确zishi,你知道吗

HttpEntity(createHeaders(username, password)), clazz); 4.自动管理AuthorizationHTTP头 Spring 3.0、3.1和现在的4.x都对Apache...引入对异步请求的支持 现在,咱们开始使用HttpClient 4和Spring 4来配置一些东西。...这你也看到了,使用HttpClient 4.x进行抢占式Basic身份认证是有点负担:缓存身份认证信息,并且建立这个身份认证缓存的过程也必须手动配置,并且非常直观的。... httpclient 4.5.3 另外,如果通过手动生成...总结 尽管Apache HttpClient的3.x开发分支已经停止更新,并且Spring对这个版本的支持也已经被完全废弃了,但是在 RestTemplate和安全性上找到的大部分信息仍然不能解释当前HttpClient

60210

Android持久化保存cookie的方法

在解析网页信息的时候,需要登录后才能访问,所以使用httpclient模拟登录,然后把cookie保存下来,以供下一次访问使用,这时就需要持久化cookie中的内容。...Cookie持久化 HttpClient可以和任意物理表示的实现了CookieStore接口的持久化cookie存储一起使用。...在BasicClientCookie对象中存储cookie当容器对象被垃圾回收机制回收时会丢失。如果需要,用户可以提供更复杂的实现。...下载着重介绍在安卓中如何利用httpclient来实现对cookie的持久化操作: 一、请求网络获取cookie 先看一下下面的代码: DefaultHttpClient httpclient = new...; import org.apache.http.cookie.Cookie; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream

2.1K20
领券