Java:在HTTP Post中发送字节[]和其他参数
我正在为最近公开的非官方Snapchat API开发Java客户端库。顺便说一句,到目前为止,我的库的GitHub如下: 我的大多数请求都可以正常工作,我可以登录、下载图像等。到目前为止,我使用UniRest处理所有这些请求,因为我喜欢API的简单性 我正在尝试按照此处概述的格式上载媒体: 生成任何字段都没有问题。数据是AES-ECB加密数据的Java:在HTTP Post中发送字节[]和其他参数,java,http,post,encryption,bytearray,Java,Http,Post,Encryption,Bytearray,我正在为最近公开的非官方Snapchat API开发Java客户端库。顺便说一句,到目前为止,我的库的GitHub如下: 我的大多数请求都可以正常工作,我可以登录、下载图像等。到目前为止,我使用UniRest处理所有这些请求,因为我喜欢API的简单性 我正在尝试按照此处概述的格式上载媒体: 生成任何字段都没有问题。数据是AES-ECB加密数据的字节[],我从文件中读取并通过指定的加密算法运行 我试过几件事: 使用UniRest的.field(字符串名称,文件文件)方法将文件添加为参数。我使用从
字节[]
,我从文件中读取并通过指定的加密算法运行
我试过几件事:
- 使用UniRest的
方法将文件添加为参数。我使用从.field(字符串名称,文件文件)
创建的临时Dile。这使我从服务器获得了一个字节[]
401未经授权的
,因此我认为UniRest添加了一些我不想要的头
- 使用
构造函数和字符串(byte[]bytes,String encoding)
编码,将UTF-8
序列化为字节[]
字符串。这会给我一个
500服务器错误
- 根本不发送
字段,只是为了看看会发生什么。这会给我一个数据
400错误请求
如果查看Python库中的
upload
方法pysnap
(init.py“>https://github.com/martinp/pysnap/blob/master/pysnap/init.py)您可以看到,我尝试做的事情以前只使用Python的请求
库。我不知道如何在Java中获得相同的行为。我的理解是,您需要对字节[]进行编码
使用base-64编码将数据作为字符串。尝试使用javax.xml.bind.DatatypeConverter.printBase64Binary
或base-64的第三方库
使用
string(byte[]bytes,string编码)转换为字符串是完全不同的。我的理解是,您需要使用base-64编码将byte[]
数据编码为字符串。请尝试使用javax.xml.bind.DatatypeConverter.printBase64Binary
或base-64的第三方库
使用string(byte[]bytes,string编码)转换为字符串是完全不同的。我的理解是,您需要使用base-64编码将byte[]
数据编码为字符串。请尝试使用javax.xml.bind.DatatypeConverter.printBase64Binary
或base-64的第三方库
使用string(byte[]bytes,string编码)转换为字符串是完全不同的。我的理解是,您需要使用base-64编码将byte[]
数据编码为字符串。请尝试使用javax.xml.bind.DatatypeConverter.printBase64Binary
或base-64的第三方库
使用string(字节[]字节,字符串编码)转换为字符串
完全不同。也不起作用,仍然是500。希望服务器能给出更好的错误。为什么你认为服务器会使用base 64?这是你对Snapchat的了解还是仅仅是在网络上做出的假设?@hatboysam-加密数据显示解密代码。也许我误读了文档,howe它可能只适用于故事,而不适用于媒体。非常确定我的加密工作正常,因为我可以正确地解密快照,Java中加密和解密的唯一区别是Cipher.decrypt\u MODE
vsCipher.ENCRYPT\u MODE
。这是使用非官方API的问题…调试起来太难了。@hatboysam-我认为PHP客户端实现会很有用。@ot是因为加密,但因为它是如何构造HTTP事务的。它显然将加密数据写入临时文件,然后指向该文件作为上传字段。啊,好的。我用UniRest尝试过,我可能会用Apache HTTP客户端尝试。也不起作用,仍然是500。希望服务器能给出更好的错误。Why您是否假设服务器会使用base 64?这是您对Snapchat的了解还是仅仅是在网络上做出的假设?@hatboysam-加密数据上显示的解密代码。但是,也许我误读了文档,它可能只适用于故事,而不适用于媒体。看看作者是如何实现上传的可能会有所启发在PHP中()。非常确定我的加密工作正常,因为我可以正确地解密快照,Java中加密和解密的唯一区别是Cipher.decrypt\u MODE
vsCipher.ENCRYPT\u MODE
。这是使用非官方API的问题…调试起来太难了。@hatboysam-我认为PHP客户端实现会很有用。@ot是因为加密,但因为它是如何构造HTTP事务的。它显然将加密数据写入临时文件,然后指向该文件作为上传字段。啊,好的。我用UniRest尝试过,我可能会用Apache HTTP客户端尝试。也不起作用,仍然是500。希望服务器能给出更好的错误。Why您是否假设服务器会使用base 64?这是您对Snapchat的了解还是仅仅是在网络上做出的假设?@hatboysam-加密数据上显示的解密代码。但是,也许我误读了文档,它可能只适用于故事,而不适用于媒体。看看作者是如何实现上传的可能会有所启发在PHP中()。非常确定我的加密工作正常,因为我可以正确地解密快照,Java中加密和解密的唯一区别是Cipher.decrypt\u MODE
vsCipher.ENCRYPT\u MODE
。这是使用非官方API的问题…调试起来太难了。@hatboysam-我认为PHP客户端实现会很有用。@因为enc的原因