相当老的帖子,但仅供参考,我成功地直接使用http post将我的图片上传到Picasa。他们自己的 Java API 不断返回错误。
我在这里详细介绍了这种方法:
File image = new File("/path/to/image.jpg");
byte[] imageContent = null;
try {
imageContent = Files.toByteArray(image);
} catch (Exception e) {
// do something
}
HttpClient httpClient = HttpClientBuilder.create().build();
HttpPost httpPost = new HttpPost("https://picasaweb.google.com/data/feed/api/user/default/albumid/default");
httpPost.addHeader("Authorization", "Bearer " + mAccessToken);
httpPost.addHeader("Content-Type", "image/jpeg");
httpPost.setEntity(new ByteArrayEntity(imageContent));
try {
HttpResponse httpResponse = httpClient.execute(httpPost);
// log the response
logd(EntityUtils.toString(httpResponse.getEntity()));
} catch (IOException e){
// do something
}
此方法使用 Apache 的 HttpClient。如果你的 Android 版本不支持它,你仍然可以在 Gradle 文件中包含这一行来编译它:
compile 'cz.msebera.android:httpclient:4.4.1.1'