外部服务不是我的,而是“ 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] 删除。
我来说两句