gpt4 book ai didi

Java:在 HTTP Post 中发送带有其他参数的 byte[]

转载 作者:行者123 更新时间:2023-12-01 23:18:02 44 4
gpt4 key购买 nike

我正在为最近公开的非官方 Snapchat API 开发 Java 客户端库。顺便说一句,到目前为止我的库的 GitHub 在这里:https://github.com/hatboysam/JavaSnap

我的大多数请求都工作正常,我可以登录、下载图像等。到目前为止,我正在使用 UniRest 来处理所有这些请求,因为我喜欢 API 的简单性。

我正在尝试按照此处概述的格式上传媒体:http://gibsonsec.org/snapchat/fulldisclosure/#uploading-and-sending-snaps-phupload-phsend

生成任何字段都没有问题。该数据是我从文件中读取并通过指定的加密算法运行的 AES-ECB 加密数据的 byte[]

我尝试了一些方法:

  • 使用 UniRest 的 .field(String name, File file) 方法将文件添加为参数。我使用从 byte[] 创建的临时 Dile。这会从服务器获取 401 UNAUTHORIZED,因此我认为 UniRest 在我执行此操作时添加了一些我不想要的 header 。

  • 使用 String(byte[] bytes, String encoding) 构造函数将 byte[] 序列化为 String UTF-8 编码。这给我带来了500 SERVER ERROR

  • 根本不发送data字段,只是为了看看会发生什么。这给我带来了 400 BAD REQUEST

如果你查看Python库中的upload方法pysnap (init.py">https://github.com/martinp/pysnap/blob/master/pysnap/init.py)你可以看到我想要做的事情之前已经用Python的requests库非常简单地完成了。我不知道如何在 Java 中获得相同的行为。

最佳答案

我的理解是,您需要使用 base-64 编码将 byte[] 数据编码为字符串。尝试使用 javax.xml.bind.DatatypeConverter.printBase64Binary 或适用于 base-64 的第三方库。

使用String(byte[] bytes, String编码)转换为字符串是完全不同的。

关于Java:在 HTTP Post 中发送带有其他参数的 byte[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20938222/

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