2011-11-30 90 views
1

当我做一个个人资料图片的请求,在这种情况下,我在我的HttpResponseHandler中收到某种编码的字符串。下面的代码是对我的个人资料图片的请求。Facebook的个人资料图片请求,即“http://graph.facebook.com/me/picture”

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"); 
    } 
}; 

这是响应对象

11-29 19:42:12.640: D/Yatter Facebook(3551): ÿØÿà��JFIF������������ÿþ��;CREATOR: gd-jpeg  v1.0 (using IJG JPEG v62), quality = 95 

任何帮助的PRINTSTRING是极大的赞赏,希望这可以帮助其他人。

谢谢

回答

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窗体应用程序中的图片框中。

如果您需要帮助,请让我知道。

+0

大这实际上帮助,现在我知道如何使用带有图片字段的JSONObject来获取实际的重定向URL。只是为了让你知道,虽然我用这个代码来检索位图'位= BitmapFactory.decodeStream((InputStream的)新的URL( \t \t \t \t \t \t“http://graph.facebook.com/"+facebookId+”/picture?type = medium“)。getContent());' – Danuofr

+0

顺便说一下,我使用AsyncTask来检索每个图像,非常感谢Robin。 – Danuofr

0

可以使用?重定向=假后续 '/图片' 获得直接的联系

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} 
} 
相关问题