gpt4 book ai didi

java - Java 中的 Http Post 字符串和二进制参数

转载 作者:行者123 更新时间:2023-12-01 13:52:16 24 4
gpt4 key购买 nike

我希望在 java 中发布一个具有字符串和二进制参数的表单,例如

name=sam&photo=<...二进制数据...>

不幸的是,可用的文档仅涵盖单独上传字符串或二进制数据。如何将两者结合起来?

最佳答案

您需要发送 mime 类型“application/x-www-form-urlencoded”。这些字段必须是文本。

字段名称和值被转义/编码,例如,空格字符被 +' 替换,保留字符使用 URL 编码转义。哦,这还不是全部...非字母数字字符被替换为%HH',如 %20 中的空格

所以两个十六进制数字代表字符的ASCII码。

如果只有 Java 可以为你做到这一点......哦等等它可以......

但这是一个新类。它从 Java 1.0 才出现。

查看 URLEncoder,它是 HTML 表单编码的实用程序类。

此类包含用于将字符串转换为 application/x-www-form-urlencoded MIME 格式的静态方法。您可以通过查阅 HTML 规范(如下引用)了解有关 HTML 表单编码的更多信息。

http://docs.oracle.com/javase/1.4.2/docs/api/java/net/URLEncoder.html

URLEncoder 处理以下内容:“字母数字字符“a”到“z”、“A”到“Z”以及“0”到“9”保持不变。特殊字符“.”、“-” 、“*”和“_”保持不变。空格字符“”被转换为加号“+”。 ”

这是二进制的关键...

“所有其他字符都是不安全的,首先使用某种编码方案将其转换为一个或多个字节。然后每个字节由 3 个字符的字符串“%xy”表示,其中 xy 是两位数的十六进制表示形式byte。推荐使用的编码方案是UTF-8。但是,出于兼容性原因,如果未指定编码,则使用平台的默认编码。”

始终指定 UTF-8。

这是 HTTP 规范。

http://www.w3.org/MarkUp/html-spec/html-spec_8.html

关于java - Java 中的 Http Post 字符串和二进制参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19876933/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com