Apache HttpClient 4.0.3 - 如何为 POST 请求设置带有 sessionID 的 cookie?

2023-12-08

你能告诉我如何将 jsessionid 存储在 cookie 中,以便可以通过 post 请求将其传递到 servlet 吗?我正在使用 Apache HttpClient 版本 4.0.3。 我找到的所有解决方案都解释了如何使用 HttpClient 3.1 执行此操作。 我已阅读该教程并尝试过此操作,但它不起作用。

HttpPost httppost = new HttpPost(postData);
CookieStore cookieStore = new BasicCookieStore();
BasicClientCookie cookie = new BasicClientCookie("JSESSIONID", getSessionId());
cookieStore.addCookie(cookie);
client.setCookieStore(cookieStore);
response = client.execute(httppost);

编辑 - 进一步解释
我正在连接一位朋友编写的 servlet。我已登录并获得jsessionid。现在我想发送另一个请求,需要传递 jsessionid 来进行授权。 Servlet 工作正常,因为我使用了 java HttpURLConnection,设置了 cookie,传递了它并且它工作了。现在,使用 HttpClient,我没有遇到任何异常,但朋友的 servlet 的返回代码表明请求中没有 sessionid。

另一个编辑 - 我有一个解决方案我设置了请求头的参数并且它起作用了。 Servlet 识别sessionid。
httppost.setHeader("Cookie", "JSESSIONID="+ getSessionId());

现在我的问题是:这个方法正确吗?


我很高兴能够解决这个问题:

HttpPost httppost = new HttpPost(postData); 
CookieStore cookieStore = new BasicCookieStore(); 
BasicClientCookie cookie = new BasicClientCookie("JSESSIONID", getSessionId());

//cookie.setDomain("your domain");
cookie.setPath("/");

cookieStore.addCookie(cookie); 
client.setCookieStore(cookieStore); 
response = client.execute(httppost); 

So Easy!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Apache HttpClient 4.0.3 - 如何为 POST 请求设置带有 sessionID 的 cookie? 的相关文章

随机推荐

  • SendInput 和 64 位

    下面是我用来通过 SendInput API 模拟按键的一些代码的摘录 如果我将应用程序设置为针对 x86 CPU 编译 则此方法可以正常工作 但不适用于 x64 CPU 编译 我猜这与 x64 使用双倍大小指针有关 但我试图改变这一点 F
  • Angular.js 路由不适用于 WAMP

    我正在致力于设置一个使用 Express Node mySQL 堆栈构建的 Angular js 单页应用程序 我为路线设置了以下代码 angular module myApp myApp filters myApp services my
  • PHP header() 函数没有重定向[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我正在使用以下 PHP 代码来检查会话 但是 如果会话未登录 则页面不会重定向 仅显示黑
  • jar 中的类路径资源

    我有一个项目A 其中包含一些java文件和一个类路径资源R txt 在项目中我使用 ClassLoader getSystemResource R txt 检索 R txt 然后我有一个项目 B 其中包含项目 A 的 jar 文件 现在 g
  • 多个线程可以同时向并发集合添加项目吗?

    我正在尝试找出 C 中的并发集合 ConcurrentBag ConcurrentDictionary 和 ConcurrentQueue 多个线程是否可以向其中添加项目EXACTLY同时 还是他们一前一后地等待 我试图检查他们的源代码 但
  • DialogFragment 中的 ActionBar

    在我的 Galaxy Tab 10 1 上的日历应用程序中 创建新事件时 标题栏 操作栏区域中会出现一个对话框 其中包含 完成 和 取消 按钮 我想在我的应用程序中实现这一点 我尝试过使用setHasOptionsMenu true 除了覆
  • Android 无尽适配器

    我正在使用无尽适配器http github com commonsguy cwac endless但是每当我返回 false 因为我没有更多的数据要附加 如此处所述http github com commonsguy cwac endles
  • 插入由触发器生成但未传递的 ID 字段

    在 MySQL 中 我有一个触发器 BEGIN IF EXISTS SELECT FROM devices WHERE device id NEW device id THEN SET NEW id NULL ELSE INSERT INT
  • 如何在 R 中对条形图的订单数据进行“分组”?

    我正在研究生物信息学 我需要输出一个包含祖先结果的图表 条形图 通常 这些图表是通过将人群分组在一起来绘制的 完成的方法是 您只需绘制不同假定人群 此处为 4 的 Q 分数 下面的数据 的条形图 问题是我使用ord tbl order tb
  • 如何在 AppleScriptObjC 中使用 NSAutoreleasePool

    我想知道如何从后台函数停止另一个函数 另外 我必须排空 NSAutoreleasePool 但我不知道该怎么做 我认为如果我不释放池 这个应用程序有时会冻结 property i 0 property myLabel missing val
  • Nginx 和 PHP-cgi - 无法 file_get_contents 服务器上的任何网站

    我认为最好用代码来解释这一点 从网络目录 vi get php 将此 php 添加到 get php IPOFTHESERVER 是运行 nginx 和 PHP 的服务器的 IP php get php 返回该 IP 托管的 默认 网站的内
  • Mifare认证

    假设我想对 Mifare Classic 进行身份验证 我如何知道要发送到卡的 APDU 的确切类型 Example 这段代码 bcla 0xFF bins 0x86 bp1 0x0 bp2 0x0 currentBlock len 0x5
  • 使用 RouteExistingFiles 阻止对现有文件的访问,即使不存在路由

    在 ASP net MVC 2 中 我可以使用routes RouteExistingFiles true 通过路由系统发送所有请求 即使它们存在于文件系统上 通常 这最终会击中 controller action id 路由并抛出异常 因
  • TabActivity 与嵌入 Activity 之间的通信

    我试图找出 TabActivity 和此 TabActivity 中嵌入的子活动之间通信的最佳实践 在我的 TabActivity 中 有一个按钮 单击按钮时 我希望更新此 TabActivity 中嵌入的子活动 我编写了如下代码 只是想知
  • Thymeleaf 和 #fields.hasErrors

    我正在为学校做这项作业 使用 SpringMVC Hibernate JPA 和 Thymeleaf 下面的代码涉及一个名为 stringGrade 的特定属性 我想使用 Hibernate Validator 验证该字段中的输入 我似乎无
  • 选择查询中的 JDBCPreparedStatement 和参数(?)[重复]

    这个问题在这里已经有答案了 我与oracle数据库的连接如下 String selectSQL SELECT supplier name FROM supplier WHERE supplier id PreparedStatement p
  • ProgressBar 在阻塞的 UI 线程中更新

    为什么ProgressBar会在理论上阻塞的UI线程中更新 在简单的应用程序中 我有一个进度栏和一个标签 我在 UI 线程中运行一个耗时的方法 尝试更新 ProgressBar 和标签 这是not应该可以工作 因为 UI 线程被阻塞 但进度
  • 更改 awt 中的按钮背景颜色

    所以我有一个名为 Safe25 的 GUI 程序 基本上 如果您按正确的顺序按下按钮 即 15032018 程序将自行关闭 如果您输入正确的数字 假设您在开始时按 1 按钮应将其背景颜色更改为绿色 例如this 如果按错按钮 按钮的颜色应更
  • 如何更改使用 ggplot2 绘制的图的背景颜色

    默认情况下 ggplot2 生成带有灰色背景的图 如何更改绘图背景的颜色 例如 由以下代码生成的图 library ggplot2 myplot lt ggplot data data frame a c 1 2 3 b c 2 3 4 a
  • Apache HttpClient 4.0.3 - 如何为 POST 请求设置带有 sessionID 的 cookie?

    你能告诉我如何将 jsessionid 存储在 cookie 中 以便可以通过 post 请求将其传递到 servlet 吗 我正在使用 Apache HttpClient 版本 4 0 3 我找到的所有解决方案都解释了如何使用 HttpC