java – Jersey REST客户端 – 多部分创建 – 不是来自File对象
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – Jersey REST客户端 – 多部分创建 – 不是来自File对象,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1670字,纯文字阅读大概需要3分钟。
内容图文
![java – Jersey REST客户端 – 多部分创建 – 不是来自File对象](/upload/InfoBanner/zyjiaocheng/811/2f8e3228e6594cf39e7cd466558a6f1b.jpg)
我想没有其他方法可以创建FileDateBodyPart而不是提供File对象:
public FileDataBodyPart(String name, File fileEntity)
但在我的情况下,我有一个byte [],我不想将其转换为文件并存储在文件系统上.
有没有其他方法从字节,输入流数组生成多部分(在上传文件时)…在最坏的情况下使用其他客户端库?
更新:
这是工作代码(但我想使用byte []而不是File):
FileDataBodyPart filePart = new FileDataBodyPart("attachment", new File("C:/TEMP/test.txt"));
MultiPart multipart = new FormDataMultiPart().bodyPart(filePart);
Invocation.Builder invocationBuilder = webTarget.request().accept(MediaType.APPLICATION_JSON);
Response response = invocationBuilder
.buildPost(Entity.entity(multipart, MediaType.MULTIPART_FORM_DATA))
.invoke();
解决方法:
FileDataBodyPart只是一个便利类.它不是您可以用来创建身体部位的唯一类型.如果您查看FormDataMultuPart.bodyPart()的文档,您将看到它将BodyPart作为参数.查看Javadocs(搜索它;找不到直接链接).如果您查找BodyPart并遍历层次结构,则有一些类从BodyPart扩展,如FormDataBodyPart(最通用)和StreamDataBodyPart.你也可以使用.
如果您有InputStream,最简单的方法是使用StreamDataBodyPart.看到j??avadoc,它有重载的构造函数.
如果你必须使用byte [],那么你可以使用更通用的FormDataBodyPart
byte[] bytes = "HelloWorld".getBytes(StandardCharsets.UTF_8);
FormDataContentDisposition fdcd = FormDataContentDisposition.name("test")
.fileName("hello.txt").build();
FormDataBodyPart bodyPart = new FormDataBodyPart(fdcd, bytes, MediaType.TEXT_PLAIN_TYPE);
MultiPart multiPart = new FormDataMultiPart().bodyPart(bodyPart);
部件应该有一个Content-Disposition标头,它提供有关该部件的一些信息,因此服务器可以正确处理它. FileDataBodyPart和StreamDataBodyPart将在内部处理FormDataContentDisposition的创建,这就是它们为便利类的原因.
内容总结
以上是互联网集市为您收集整理的java – Jersey REST客户端 – 多部分创建 – 不是来自File对象全部内容,希望文章能够帮你解决java – Jersey REST客户端 – 多部分创建 – 不是来自File对象所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。