使用Jersey通过Graph API上传照片

时间:2012-05-23 15:12:45

标签: java rest facebook-graph-api upload jersey

我有一个Java应用程序,我尝试通过泽西的图形API将照片上传到Facebook。 到目前为止,一切正常,泽西我可以发布消息等。

我搜索了几个小时,找到了一个如何做的例子。 我找到的最好的教程就是这个:

http://neopatel.blogspot.de/2011/04/jersey-posting-multipart-data.html

我唯一知道的是我必须使用multipart / formdata。

有没有人有例子或知道必须这样做?

2 个答案:

答案 0 :(得分:2)

您是否尝试使用jersey-multipart套餐?

您为文件创建FormDataMultiPart FileDataBodyPart,为邮件和access_token创建FormDataBodyPart ..

答案 1 :(得分:2)

这是我的解决方案。

String url = "https://graph.facebook.com/me/photos";
File file = new File("path");

ClientConfig cc = new DefaultClientConfig();
cc.getClasses().add(MultiPartWriter.class);
Client client = Client.create(cc);

WebResource webResource = client.resource(url); 
FormDataMultiPart fdmp = new FormDataMultiPart(); 

fdmp.bodyPart(new FileDataBodyPart("source", file, MediaType.APPLICATION_OCTET_STREAM_TYPE));
fdmp.bodyPart(new FormDataBodyPart("message", "YAY I did it!"));
fdmp.bodyPart(new FormDataBodyPart("access_token", accessToken));

ClientResponse response = webResource.type(MediaType.MULTIPART_FORM_DATA_TYPE).post(ClientResponse.class, fdmp); 
String string = response.getEntity(String.class);