spring Resttemplate url 编码

2024-02-18

我尝试使用 springs Resttemplate 进行简单的休息调用:

private void doLogout(String endpointUrl, String sessionId) {
    template.getForObject("http://{enpointUrl}?method=logout&session={sessionId}", Object.class,
            endpointUrl, sessionId);
}

其中 endpointUrl 变量包含类似 service.host.com/api/service.php 的内容

不幸的是,我的调用导致 org.springframework.web.client.ResourceAccessException: I/O error: service.host.com%2Fapi%2Fservice.php

所以 spring 似乎在创建 url 期间对我的 endpointUrl 字符串进行了编码。有没有一种简单的方法可以防止 spring 这样做?

Regards


没有简单的方法可以做到这一点。 URI 模板变量通常用于路径元素或查询字符串参数。您正在尝试超越主机。理想情况下,您会找到更好的解决方案来构建 URI。我建议榆次的解决方案 https://stackoverflow.com/a/27550501/438154.

如果您仍然想使用 Spring 实用程序和模板扩展,一种解决方法是使用UriTemplate使用 URI 变量生成 URL,然后对其进行 URL 解码并将其传递给您的RestTemplate.

String url = "http://{enpointUrl}?method=logout&session={sessionId}";
URI expanded = new UriTemplate(url).expand(endpointUrl, sessionId); // this is what RestTemplate uses 
url = URLDecoder.decode(expanded.toString(), "UTF-8"); // java.net class
template.getForObject(url, Object.class);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

spring Resttemplate url 编码 的相关文章

  • openFileOutput 在单例类中无法正常工作 - 想法/解决方法?

    作为一名 Android 开发新手 我遇到了一些奇怪的问题 我想创建一个类 它方法其他类 活动 任何可以用于以某种特殊方式处理文件的类 假设为了简单起见 我们将记录一些内容 如果我在活动中执行以下操作 例如在 OnClick 侦听器中 则一
  • Selector.close() 是否关闭所有客户端套接字?

    我是 nio 套接字的新手 我已经使用 nio 套接字编写了一个服务器 现在我正在尝试编写关闭钩子以确保通过清理资源正常退出 我的问题是Selector close 方法关闭所有客户端套接字 如果没有 请告诉我如何访问所有客户端套接字 而无
  • Spring Data Jpa OneToMany 同时保存子实体和父实体?

    这是我的父实体 注意 为了简洁起见 删除了 getter setter lombok 注释 Entity public class Board Id GeneratedValue strategy GenerationType IDENTI
  • 如何杀死 Java Future?

    我正在开发的服务使用 Future 来并行运行多个任务 每个任务最多可能需要一分钟才能完成 然而 外部库似乎有问题 因为在某些情况下 2 的时间 它不会返回 在这些情况下 我想给出 2 分钟的等待时间 如果还没有返回 我想杀死 future
  • Java:一种将 Mime(内容)类型与 CommonsMultipartFile 中的文件扩展名相匹配的方法

    在我的公司 出于额外原因 我需要将 mime 类型与文件扩展名进行比较 我有一个CommonsMultipartFile 我正在尝试找出进行这种比较的最佳方法 我见过一个MimetypesFileTypeMap 但不确定这是否适用于此 我试
  • 使用 https 的 Web 服务身份验证给出错误

    我编写了一个简单的 Web 服务 并使用摘要和 HTTPS 身份验证来保护它 我已经使用 Java 中的 keytool 生成了我的证书 当我通过创建 war 文件在 Tomcat 中部署 Web 服务时 axis 的欢迎页面正确显示 但是
  • 用于制作代码编辑器的 JavaFX 相当于 JSyntaxPane 的什么?

    以前在 Swing 中 我使用过JSyntaxPane用于制作一个小型 Java 源代码编辑器 为了练习 我决定用 JavaFX 重做整个项目并添加对更多语言的支持 最好是尽可能多 不过好像没有什么类似的JSyntaxPane 一些研究让我
  • 是否可以使用 Apache Tika 提取表信息?

    我正在寻找 pdf 和 MS Office 文档格式的解析器 以从文件中提取表格信息 当我看到 Apache Tika 时 正在考虑编写单独的实现 我能够从任何这些文件格式中提取全文 但我的要求是提取表格数据 我希望有 2 列采用键值格式
  • 在 doxygen 中使用 @see 或 @link

    我之前用 Javadoc 记录并使用了标签 see link or see foo and link foo 在我的描述中链接到其他课程 现在我尝试了doxygen 似乎这些标签不兼容 如果我运行 doxygen 完整的标签将被简单地解释为
  • 递归取消 allOf CompletableFuture

    如果我有 CompletableFuture
  • Spring SpEL - 用于创建字符串和自定义对象映射的表达式语言

    我在用着春季启动从属性文件中读取以下内容的示例 sub region data AF subRegionCd 34 subRegionName Southern Asia subRegionDesc status A 我在下面使用过 但不起
  • java彩色滚动条搜索结果

    我将如何在 Java 中自定义滚动条 以便我可以进行像 chrome 一样的搜索 也就是说在结果所在的位置放置彩色条纹 我不想要一个库 因为我更喜欢自己编写代码 另外 我不想失去我拥有的 L F 欢迎举例 实际上 它将查看一个大的文本文件或
  • java绕中心旋转矩形

    我想围绕其中心点旋转一个矩形 它应该保留在应该绘制的位置并在该空间中旋转 这是我的代码 AffineTransform transform new AffineTransform transform rotate Math toRadian
  • javadoc 子集/java 库组织

    我自己从来没有运行过javadoc 无论是在命令行还是ant 的 javadoc 任务 http ant apache org manual Tasks javadoc html 我将使用 ant 我需要为我编写的库生成 javadoc 问
  • Spring Security 角色层次结构不适用于 Thymeleaf sec:authorize

    我正在使用 Spring Security 3 2 5 RELEASE 和 ThymeLeaf 2 1 4 RELEASE 我已经在安全上下文中定义了角色层次结构 在我的视图层中我正在使用sec authorize属性来定义菜单项 我希望看
  • Hybris:如何在impex中导入zip文件中的媒体?

    我知道我们可以导入未像这样压缩的图像 siteResource jar com project initialdata constants ProjectInitialDataConstants projectinitialdata imp
  • 如何在一次操作中使用 Thymeleaf 检查 null 和空条件?

    有什么方法可以检查 Thymeleaf 中的 null 和empty 条件吗 方法一 1 variable1 variable2 variable3 2 variable null 3 variable 如果我们结合两个条件 例如 vari
  • 如何在不使用 -cp 开关的情况下在 Groovy 中自动加载数据库 jar?

    我想简化调用 Oracle 数据库的 Groovy 脚本的执行 如何将 ojdbc jar 添加到默认类路径以便我可以运行 groovy RunScript groovy 代替 groovy cp ojdbc5 jar RunScript
  • JPA ManyToMany 产生的空联接表

    我有一个应用程序 其中我尝试使用 Hibernate 作为 JPA 提供程序来实现两个实体之间的多对多关系 我正在尝试的例子是一个单向的 其中一个相机可以有多个镜头 而镜头可以安装到多个相机中 以下是我的实体类 只需粘贴其中的相关部分 Ca
  • MyBatis 枚举的使用

    我知道以前有人问过这个问题 但我无法根据迄今为止找到的信息实施解决方案 所以也许有人可以向我解释一下 我有一个表 状态 它有两列 id 和 name id是PK 我不想使用 POJO Status 而是使用枚举 我创建了这样一个枚举 如下所

随机推荐

  • 返回值存储在内存的什么位置?

    返回值存储在内存的什么位置 考虑以下代码 int add int a int b int result a b return result void main int sum add 2 3 When add 2 3 被调用时 2个函数参数
  • 2012 年附加到流程

    我们曾经在 VS 2010 中附加了进程宏 这非常方便 既然宏在 Visual Studio 2012 中消失了 是否存在可以为我们执行此操作的插件 我们的宏将附加到 w3 exe 进程 这非常漂亮 也许我需要将宏转换为插件 我使用这个扩展
  • 神奇记录迁移失败“找不到源存储的模型”

    我们对 CoreData 模型进行了一些更改 看起来自动迁移失败了 即使我们将当前模型设置为用于生成数据的原始模型 仍然会出现错误 Reason 找不到源商店的模型 2014 09 05 02 19 43 297 948 166846 LB
  • 用户“postgres”的 Docker 密码身份验证失败

    我正在编写一个 docker compose 文件来启动一些服务 但数据库服务是个麻烦制造者 我总是收到此错误 FATAL password authentication failed for user postgres DETAIL Pa
  • 这个错误应该被修复吗?

    昨天我在 Net框架中发现了一个bug 并且发现这是一个已知的bug 不会被修复 简而言之 该错误在于 当将 int 以及可能的其他二进制类型 分配给该字段时 包含 IComparable 类型字段的类无法进行二进制序列化和反序列化 Ser
  • 类型错误:无法从 ndarray 中减去 DatetimeArray

    我的数据框中有两列 开始日期和完成日期 它是时间戳 我想通过找出差异来计算运行时间 当我运行下面的代码时 出现错误 TypeError cannot subtract DatetimeArray from ndarray 我也无法将完成日期
  • 如何撤消 Redux 异步操作? (状态后退多步)

    如果我有一个带有 api 调用的异步操作 它可以是一个操作返回一个函数 export function asyncAction itemId return dispatch gt dispatch requestStarted return
  • 检查数字是否具有相同的符号

    我遇到过这个 检查两个整数是否具有相同符号的最简单方法 https stackoverflow com questions 66882 simplest way to check if two integers have same sign
  • .Net CodeDom - 在 .net 中实现 lambda 表达式

    我想使用 CodeDom 写这样的东西 Where x gt x Id 2 我不知道 CodeDom System CodeDom 中与此等效的是什么 简短回答 CodeDOM 不支持 lambda 长答案 CodeDOM 不支持 lamb
  • 如何使用自定义比较器比较两个数组列表是否相等?

    具体来说 我有两个清单 List
  • 如何以编程方式关闭视频加速

    我在数百台计算机 专用 上运行的程序中使用 Windows Media Player OCX 我发现当视频加速打开到 全 时 在某些计算机上会导致视频无法正确播放 电影之间出现绿色方块等 将加速度设置为 无 一切正常 该程序在大约 800
  • Flutter:构建期间调用 setState() 或 markNeedsBuild()

    我有一个显示视频的页面 但是当我完成视频并弹回到上一页时 我收到以下错误 我的应用程序运行得很好 没有中断 但是下面的错误让我很困扰 构建期间调用 setState 或 markNeedsBuild 是我无法修复的错误 我需要帮助来修复此错
  • ElasticSearch:使用匹配的搜索词标记文档

    我正在使用 elasticsearch 1 7 并且需要一种方法来标记文档与它们匹配的 query string 查询的部分 我一直在尝试突出显示 但发现在某些情况下它会变得有点混乱 我希望用匹配的搜索词标记该文档 这是我正在使用的查询 注
  • 在不启动 PHP 会话的情况下检查 PHP 会话?

    是否可以在不启动会话的情况下检查会话 我问的原因是 我正在开发的应用程序有一个集成的管理界面 因此 当管理员登录时 他们会浏览与用户相同的页面来进行编辑 字段和选项根据用户权限显示 这导致了两个问题 One因为会话正在启动 所以我无法启用浏
  • 当我将铃声模式设置为 RINGER_MODE_SILENT 时,手机仍然振动,并且菜单中的图标设置为“振动”图标

    当我执行这段代码时 mAudioManager setRingerMode AudioManager RINGER MODE SILENT 我顶部菜单栏中的图标设置为振动图标 并且振动设置设置为振动而不是静音 我对 静音 的期望是没有振动
  • Electron 是针对不同的 Node.js 版本编译的

    我正在构建一个预计在 Ubuntu 20 xx Linux 和 Raspberry Pi 运行 Raspbian 和 arch armv7l 上运行的 Electron 应用程序 但收到以下错误 was compiled against a
  • 如何触发gitlab中的特定作业

    我想在管道中运行特定的作业 我认为为该作业分配一个标签 然后在 post 方法中再次指定该标签将满足我的需求 问题是当我使用 api post 触发时 所有作业尽管只有其中一个已标记 但管道中会触发事件 gitlab ci yml 工作1
  • Android TextView 去除顶部和底部空间的方法

    当我包括以下内容时XML to layout文件 我可以看到下图 如果你看到它 你就会意识到TextView有顶部和底部空间
  • 适用于 Visual Studio 2008 的 Windows CE SDK

    我是 Windows CE 编程新手 我有 Visual Studio 2008 和 Visual Studio 2005 我找到了以下适用于 Windows Mobile 的 SDK 请帮助我确定这是否是正确的 或者请随时将我重定向到正确
  • spring Resttemplate url 编码

    我尝试使用 springs Resttemplate 进行简单的休息调用 private void doLogout String endpointUrl String sessionId template getForObject htt