外部服务的创建API。发送二进制数据

运动感觉

外部服务不是我的,而是“ Freshdesk”。

我设法用Java-ws-rs创建了Java-API,以便能够调用其WS来创建“票证”。

这是我的界面:

@Path("/api/v2/")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public interface FreshdeskService {

  @POST
  @Path("tickets")
  TicketResponse create(TicketRequest ticketRequests);

}

这是我的对象(我删除了很多字段,因为这里没有必要):

public class TicketRequest {
  private String name;
  private Long requester_id;
  private String email;
}

一切都很好,可以创建票证。我的问题是当我尝试向该票证添加附件时。这里是文档:http : //developers.freshdesk.com/api/#create_ticket

curl命令是:

curl -v -u [email protected]:test -F "attachments[]=@/path/to/attachment1.ext" -F "attachments[]=@/path/to/attachment2.ext" -F "[email protected]" -F "subject=Ticket Title" -F "description=this is a sample ticket" -X POST 'https://domain.freshdesk.com/api/v2/tickets'

如您所见,他们使用将数据转换为表单-F但是我不知道如何使用我的API来做到这一点。我可以List<File>TicketRequest对象中添加一个但是它不起作用。有什么帮助吗?

卡西莫林

Freshdesk文档陈述了以下有关创建带有附件的票证的信息:

此API请求必须将其内容类型设置为multipart/form-data

因此,您将无法使用JSON创建带有附件的票证。


根据您使用的JAX-RS实现,有不同的发送/接收文件的方法。

如果使用的是Jersey 2.x,则需要添加多部分依赖关系并注册多部分功能才能处理多部分请求。检查此答案以获取有关如何执行此操作的更多详细信息。您可以用来FormDataMultiPart从客户端上载文件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章