当我请求个人资料图片时,在这种情况下,我在HttpResponseHandler中收到某种编码字符串。以下代码是我的个人资料图片的请求。
private static AsyncHttpClient client = new AsyncHttpClient();
client.get("http://graph.facebook.com/1206433/picture", fbPictureHandler);
下面的代码是我检索响应的处理程序。我将响应作为字符串,但我不知道如何处理此响应对象。我已经尝试过转换为字节数组并写入“file.jpg”这个没有用。我的主要问题是如何处理这个响应对象?
private static AsyncHttpResponseHandler fbPictureHandler = new AsyncHttpResponseHandler ()
{
@Override
public void onStart() {
Log.d(TAG,"started picture handler");
}
@Override
public void onSuccess(String response) {
//Not sure what to do here, have been unable to do anything with this Byte //array
byte[] imageBackground = response.getBytes();
}
@Override
public void onFailure(Throwable error) {
Log.d(TAG, "unable to retrieve picture");
error.printStackTrace();
}
@Override
public void onFinish() {
Log.d(TAG,"Finished picture handler");
}
};
这是响应对象的PrintString
11-29 19:42:12.640: D/Yatter Facebook(3551): ÿØÿà��JFIF������������ÿþ��;CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 95
非常感谢任何帮助,希望这可以帮助他人。
谢谢,
答案 0 :(得分:2)
使用以下请求而不是您要发出的请求
http://graph.facebook.com/1206433?fields=picture
这将以下列格式向您返回JSON字符串,其中包含配置文件图像的原始路径。
{
"picture": "http://profile.ak.fbcdn.net/hprofile-ak-snc4/260615_1206433_140418666_q.jpg"
}
解析此字符串以获取“图片”的路径,并在代码中使用它来获取图片。
以下是示例请求示例
注意:http://profile.ak.fbcdn.net/hprofile-ak-snc4/260615_1206433_140418666_q.jpg是通过在第一步中解析JSON字符串获得的。
WebRequest request = WebRequest.Create("http://profile.ak.fbcdn.net/hprofile-ak-snc4/260615_1206433_140418666_q.jpg");
WebResponse response = request.GetResponse();
Stream stream = response.GetResponseStream();
pictureBox1.Image = Image.FromStream(stream);
这会将图像加载到Windows窗体应用程序中的图片框中。
如果您需要帮助,请告诉我们。
答案 1 :(得分:0)
您可以使用?redirect = false 按照'/ picture'获取直接链接
http://graph.facebook.com/+facebookid+/picture?redirect=false
和响应包含url静态链接(json格式)
{"data":{
"url":"https:\/\/fbcdn-profile-a.akamaihd.net\/hprofile-ak-frc1\/t1.0-1\/c126.33.409.409\/s50x50\/551571_4079894629426_190963543_n.jpg","is_silhouette":false}
}