当前位置: 首页 > 面试题库 >

将二进制数据发布到RESTful应用程序

蒋培
2023-03-14
问题内容

我正在开发一个RESTful Web应用程序(Django +
Piston)。POST请求将使用Json编码的数据发送到Web应用程序。这对于我所有的纯文本数据库表都很好,但是我还有一个存储文本和二进制文件的表。将文本和二进制数据发布到RESTful应用程序的最佳方法是什么?


问题答案:

您可以对它进行Base64编码并以字符串形式将其发送到JSON消息中,也可以将二进制文件作为单独的资源进行POST或PUT并在JSON消息中通过ID或URL进行引用。后一种方法是一种带外数据通道,在基于XML的协议(例如,使用XMPP的语音聊天)中非常常见。

您甚至可以轻松支持混合模型,从而:

  1. 小图像发送为{"base64":"OGZmNjJmOWNhYzFlODE0NDBjYmYzNjhjYz..."};
  2. 上载大图像作为参考{"ref":"http://myserver.com/bits/E4304205-29B7-48EE-A359-74250E19EFC4"}

为了避免外部引用的二进制文件需要两次POST,您可以设计一些协议,该协议允许在一次传输中将JSON和二进制文件混合在一起。但是增加的收益不太可能充分奖励这种努力水平。

最后,从设计角度出发,坚持使用简单的解决方案,直到出现问题为止。



 类似资料:
  • 问题内容: 我正在尝试将附件上传到通过rest API输入到网页的HTML文件中。API文档指出,该帖子是HTTP请求正文的纯二进制内容,而不是表单文件上载。 我的代码如下: 我需要使用它来处理许多不同的mimeType,因此我没有在上面的代码中声明它。但是,我尝试为.doc文件声明contentType:’application / msword’,还尝试了processData:false和c

  • 问题内容: 是否可以将数据发布到JsonP?还是所有数据都必须作为GET请求传递到查询字符串中? 我有很多数据需要跨域发送到服务,并且太大,无法通过查询字符串发送 解决这个问题有哪些选择? 问题答案: 由于同一个原始策略的(相当明智的)限制,因此无法与另一个域上的服务进行异步。JSON- P之所以起作用,是因为允许您将标签插入DOM,并且它们可以指向任何地方。 当然,您可以使用常规形式的POST来

  • > 我想从Android应用程序接收响应和发布数据,以填写注册表格。 我想访问一个从第一页返回< code>session_id的网站。意味着当应用程序启动时,我将访问主页并获取< code>session_id,使用< code>session_id和我的应用程序中的一些字段,我想将数据发布到网站的服务器。 应该用什么来做上面的任务? 我已经使用Jsoup和Parse HTML来获得(不在主线程

  • 我有个问题。我已经在android studio中编写了应用程序。将应用程序发布到play store后,firebase数据库根本无法工作。我在firebase控制台项目设置中添加了SHA1键,有什么问题吗? 谢谢你的帮助。 我从这里拿走了SHA1钥匙:

  • 问题内容: 我们通过Spring MVC公开了REST服务。我们使用a 记录异常。我们目前记录以下内容: 异常及其堆栈跟踪 网址 请求头 如果我们也可以记录JSON发布数据,则将使调试更加容易。关于如何获得此建议? 问题答案: 您需要一个过滤器,该过滤器可以在读取请求正文时保存请求正文,并在以后将保存的数据提供给异常记录器。 Spring包含做类似的事情。尽管它并不直接适合您的问题,但是您可以将其

  • 我想做一个java程序,用户输入一个十进制数,然后它转换成二进制。这是我到目前为止所拥有的,但是当我输入8时,虽然循环只循环一次,只给我0。我知道二进制中的8是1000,所以我不明白我做错了什么。我需要代码变得简单。请帮忙谢谢