在 Web 服务中使用 JSON 字节数组以及 application/x-www-form-urlencoded

2024-03-15

有3个问题。我正在使用 Java Restful Web 服务,请求是 HTTP POST

  1. 客户端如何发送 JSON 数据以及 application/x-www-form-urlencoded 的 MediaType。 使用字节数组是否可以?

  2. 如何使用在服务器端以 byte[] 格式发送的 JSON 数据以及 application/x-www-form-urlencoded 的 MediaType ?

  3. 我可以使用 Postman 客户端以字节数组格式发送 JSON 吗?


  1. (1) Postman 会自动对 JSON 进行 url 编码。只需输入一个键,值就是 JSON。 (2) 是的,但您需要首先对字节数组进行 Base64 编码。看Java 8 的Base64.Encoder.encodeToString https://docs.oracle.com/javase/8/docs/api/java/util/Base64.Encoder.html#encodeToString-byte:A-。如果您不使用 Java 8,您可能需要一个外部库。

  2. (1) 如果您只是发送 url 编码的 JSON,并且想要验证 JSON,那么您应该使用像 Jackson 这样的库。你可以做类似的事情

    @Path("/encoded")
    public class EncodedResource {
        @POST
        @Path("/json")
        @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
        public Response getResponse(@FormParam("json") String json) 
                                                  throws Exception {
            ObjectMapper mapper = new ObjectMapper();
            Hello hello = mapper.readValue(json, Hello.class);
            return Response.ok(hello.hello).build();
        }
    
        public static class Hello {
            public String hello;
        } 
    }
    

    我已经用邮递员测试了这个,输入json进入钥匙和{"hello":"world"}进入值,并且效果很好。响应是world

    (2)如果你要对其进行Base64编码,那么你需要做类似的事情

    @POST
    @Path("/base64")
    @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
    public Response getResponse(@FormParam("base64") String base64) 
                                                  throws Exception {
        String decoded = new String(Base64.getDecoder().decode(base64));
        ObjectMapper mapper = new ObjectMapper();
        Hello hello = mapper.readValue(decoded, Hello.class);
        return Response.ok(hello.hello).build();
    }
    
    public static class Hello {
        public String hello;
    }
    

    我也用 Postman 测试过,效果很好。我用了这个代码

    String json = "{\"hello\":\"world\"}";
    String encoded = Base64.getEncoder().encodeToString(json.getBytes());
    

    得到一个编码字符串(即eyJoZWxsbyI6IndvcmxkIn0=),将其作为值并base64作为钥匙。通过对上述方法的请求,我得到了相同的结果world result.

  3. 我认为上面应该涵盖这一点。

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

在 Web 服务中使用 JSON 字节数组以及 application/x-www-form-urlencoded 的相关文章

  • 如何将本机库链接到 IntelliJ 中的 jar?

    我正在尝试在 IntelliJ 中设置 OpenCV 但是我一直在弄清楚如何告诉 IntelliJ 在哪里可以找到本机库位置 在 Eclipse 中 添加 jar 后 您可以在 Build Config 屏幕中设置 Native 库的位置
  • 在 Java 中克隆对象 [3 个问题]

    这样做会调用Asub的clone方法吗 或者Asub深度克隆是否正确 如果没有的话 有没有办法通过这种方法对Asub进行深度克隆呢 abstract class Top extends TopMost protected Object cl
  • Junit:如何测试从属性文件读取属性的方法

    嗨 我有课ReadProperty其中有一个方法ReadPropertyFile返回类型的Myclass从属性文件读取参数值并返回Myclass目的 我需要帮助来测试ReadPropertyFile方法与JUnit 如果可能的话使用模拟文件
  • 如何循环遍历所有组合,例如48 选择 5 [重复]

    这个问题在这里已经有答案了 可能的重复 如何在java中从大小为n的集合中迭代生成k个元素子集 https stackoverflow com questions 4504974 how to iteratively generate k
  • 为什么 JTables 使 TableModel 在呈现时不可序列化?

    所以最近我正在开发一个工具 供我们配置某些应用程序 它不需要是什么真正令人敬畏的东西 只是一个具有一些 SQL 脚本生成功能并创建几个 XML 文件的基本工具 在此期间 我使用自己的 AbstractTableModel 实现创建了一系列
  • Pig Udf 显示结果

    我是 Pig 的新手 我用 Java 编写了一个 udf 并且包含了一个 System out println 其中的声明 我必须知道在 Pig 中运行时该语句在哪里打印 假设你的UDF 扩展了 EvalFunc 您可以使用从返回的 Log
  • jQuery AJAX 调用 Java 方法

    使用 jQuery AJAX 我们可以调用特定的 JAVA 方法 例如从 Action 类 该 Java 方法返回的数据将用于填充一些 HTML 代码 请告诉我是否可以使用 jQuery 轻松完成此操作 就像在 DWR 中一样 此外 对于
  • 帮助将图像从 Servlet 获取到 JSP 页面 [重复]

    这个问题在这里已经有答案了 我目前必须生成一个显示字符串文本的图像 我需要在 Servlet 上制作此图像 然后以某种方式将图像传递到 JSP 页面 以便它可以显示它 我试图避免保存图像 而是以某种方式将图像流式传输到 JSP 自从我开始寻
  • jdbc mysql loginTimeout 不起作用

    有人可以解释一下为什么下面的程序在 3 秒后超时 因为我将其设置为在 3 秒后超时 12秒 我特意关闭了mysql服务器来测试mysql服务器无法访问的这种场景 import java sql Connection import java
  • 如何在用户输入数据后重新运行java代码

    嘿 我有一个基本的java 应用程序 显示人们是成年人还是青少年等 我从java开始 在用户输入年龄和字符串后我找不到如何制作它它们被归类为 我希望它重新运行整个过程 以便其他人可以尝试 的节目 我一直在考虑做一个循环 但这对我来说没有用
  • Java ResultSet 如何检查是否有结果

    结果集 http java sun com j2se 1 4 2 docs api java sql ResultSet html没有 hasNext 方法 我想检查 resultSet 是否有任何值 这是正确的方法吗 if resultS
  • 如何对不同的参数类型使用相同的java方法?

    我的问题 我有 2 个已定义的记录 创建对象请求 更新对象请求 必须通过实用方法进行验证 由于这两个对象具有相同的字段 因此可以对这两种类型应用相同的验证方法 现在我只是使用两种方法进行重载 但它很冗长 public record Crea
  • 尝试将 Web 服务部署到 TomEE 时出现“找不到...的 appInfo”

    我有一个非常简单的项目 用于培训目的 它是一个 RESTful Web 服务 我使用 js css 和 html 创建了一个客户端 我正在尝试将该服务部署到 TomEE 这是我尝试部署时遇到的错误 我在这里做错了什么 刚刚遇到这个问题 我曾
  • java for windows 中的文件图标叠加

    我正在尝试像 Tortoise SVN 或 Dropbox 一样在文件和文件夹上实现图标叠加 我在网上查了很多资料 但没有找到Java的解决方案 Can anyone help me with this 很抱歉确认您的担忧 但这无法在 Ja
  • 使用 AsyncTask 传递值

    我一直在努力解决这个问题 但我已经到了不知道该怎么办的地步 我想做的是使用一个类下载文件并将其解析为字符串 然后将该字符串发送到另一个类来解析 JSON 内容 所有部件都可以单独工作 并且我已经单独测试了所有部件 我只是不知道如何将值发送到
  • 如何使用 jUnit 将测试用例添加到套件中?

    我有 2 个测试类 都扩展了TestCase 每个类都包含一堆针对我的程序运行的单独测试 如何将这两个类 以及它们拥有的所有测试 作为同一套件的一部分执行 我正在使用 jUnit 4 8 在 jUnit4 中你有这样的东西 RunWith
  • 最新的 Hibernate 和 Derby:无法建立 JDBC 连接

    我正在尝试创建一个使用 Hibernate 连接到 Derby 数据库的准系统项目 我正在使用 Hibernate 和 Derby 的最新版本 但我得到的是通用的Unable to make JDBC Connection error 这是
  • 我如何在java中读取二进制数据文件

    因此 我正在为学校做一个项目 我需要读取二进制数据文件并使用它来生成角色的统计数据 例如力量和智慧 它的设置是让前 8 位组成一个统计数据 我想知道执行此操作的实际语法是什么 是不是就像读文本文件一样 这样 File file new Fi
  • org.apache.solr.common.SolrException 流主体已禁用

    我已经设置了 apache solr 7 1 并使用 postman 工具来查询它 但是当我尝试使用邮递员删除索引数据时 出现以下错误 Request GET http localhost 8983 solr solr sample3 up
  • 使用 CXF-RS 组件时,为什么我们使用 而不是普通的

    作为后续这个问题 https stackoverflow com questions 20598199 对于如何正确使用CXF RS组件我还是有点困惑 我很困惑为什么我们需要

随机推荐

  • float 无法转换为 'MirrorDisposition' Swift 什么是mirrordisposition?

    我得到以下代码 let floatValue Float 1 let intValue Int 1 if floatValue intValue println Types and value are equal else println
  • 使用 django 实现一个对请求进行计数的计数器

    我只是想和姜戈一起尝试 我如何实现一个计数器来存储数据库上服务的请求计数 我想统计 GET 请求的数量 我该怎么做才能让它工作 我的模板
  • 如何用hadoop实现自连接/叉积?

    对成对的项目进行评估是常见的任务 示例 重复数据删除 协同过滤 相似项目等 这基本上是具有相同数据源的自连接或叉积 要进行自连接 您可以遵循 减少端连接 模式 映射器将连接 外键作为键发出 将记录作为值发出 因此 假设我们想要对以下数据的
  • 可以在 AS3 中保存 XML 文件

    var xml XML
  • VBA 公式内变量

    我有以下代码 ActiveCell FormulaR1C1 COUNTIF R 54 C 14 R 54 C 90 RC 4 我想用变量 total 替换 90 我尝试了这个但没有成功 Dim total as Integer total
  • 找不到程序集

    我将 ArrayList 序列化为二进制文件 以便通过 TCP IP 发送它 序列化文件是由服务器创建的 我希望能够使用我现在正在编写的客户端对其进行反序列化 但是 当客户端尝试反序列化时 它会抛出 SerializationExcepti
  • 如果没有响应则继续发送请求

    在循环中没有得到响应的情况下 如何继续获取网页 for el of NodeList const url el getAttribute href const res await fetch url if no response below
  • html2canvas 不从外部 css 文件获取 css 样式

    我正在使用 html2canvas 将包含 svg 对象 图像和 html 内容的 div 转换为图像 但它不会从外部 css 文件获取 css 样式 我已将这些 css 类 target 和 Circle 放入外部 css 文件中 有人请
  • 如何在 Jetpack Compose 中实现列表的“对齐中心”功能?

    在具有水平 LinearLayout 的 EpoxyRecyclerView 中 有一个 对齐中心 功能 其工作原理如下 如果我以良好的速度滚动列表 它会继续滚动 直到速度减慢并以项目位于中心为止 如果我缓慢滚动并抬起手指 那么下一个项目就
  • 材质UI下一个对话框文本字段下划线颜色

    如何使用辅助调色板颜色更改对话框内文本字段的下划线颜色 我无法做到这一点 因为文档非常混乱 假设您使用的是material ui next 您可以使用覆盖 in 创建Mui主题 import MuiThemeProvider createM
  • Rails 模型中的实例变量

    我想在 Rails 模型中初始化一个实例变量 该变量将保存一个数组 并且我想在模型中的其他方法中访问该变量 我试过这个 class Participant lt ActiveRecord Base possible statuses exi
  • 根据 Python pandas 中索引的补集挑选元素

    我有一个数据框 我从中选择两个子集 dfs df a and df b 例如在iris数据集 df a iris iris Name Iris setosa df b iris iris Name Iris virginica 获得所有元素
  • 有没有一种方法可以透明地对 SQLAlchemy 对象执行验证?

    有没有办法在设置属性之后 或设置属性时 但在提交会话之前对对象执行验证 例如 我有一个领域模型Device有一个mac财产 我想确保mac属性在添加到数据库或在数据库中更新之前包含有效且经过清理的 mac 值 看起来 Pythonic 方法
  • PHP在提交表单失败后保留表单信息

    你好 我正在 mvc 系统视图中构建一个表单 并且我希望保留所有插入的值 以防表单提交失败 如何做到这一点 我尝试过 字段示例
  • 点击鼠标绘制一个矩形

    可以用鼠标点击画一个矩形吗 我的代码到目前为止还不能工作 你能帮助我吗 private void panel1 MouseClick object sender MouseEventArgs e Graphics g this Create
  • 源码分析工具? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 C 和 C 的源代码分析和探索工具似乎非常缺乏 是否有任何工具可以用来收集有关 C 和 或 C 源文件的信息 cscope 完成了我需要的
  • 单元测试持久层 - Symfony

    我想在 Symfony2 中测试持久性 我想知道是否更好地模拟实体并提供给实体管理器 或者是否更好地模拟实体管理器并将实体传递给管理器 我的第一个选择是实体管理器抛出异常 而不是对象不是实体学说 如何在 PHPUNIT 中测试 symfon
  • 使用正则表达式或类似表达式更改 Chrome 中的当前 URL

    当在 Chrome 中输入已弃用的 URL 时 应根据正则表达式或类似表达式将其更改为更新的 URL 我想做以下事情 向系统输入一条规则 将 olddomain com 更改为 newdomain com 在 Chrome 中输入 oldd
  • 当插入符进入 contenteditable div 中的 span 元素时触发事件

    我有一个内容可编辑的 div 其跨度如下 div some span spanned span text div 我想知道是否有任何事件监听器可以附加到span元素本身可用于检测插入符是否在元素内部移动span元素 我并不是在寻找有听众的答
  • 在 Web 服务中使用 JSON 字节数组以及 application/x-www-form-urlencoded

    有3个问题 我正在使用 Java Restful Web 服务 请求是 HTTP POST 客户端如何发送 JSON 数据以及 application x www form urlencoded 的 MediaType 使用字节数组是否可以