我无法从 Instagram api 解析 json

Posted

技术标签:

【中文标题】我无法从 Instagram api 解析 json【英文标题】:I can't parse json from Instagram api 【发布时间】:2021-10-28 14:48:15 【问题描述】:

我无法从 instagram api 解析 json 并且我的代码出现此错误:

com.android.volley.ParseError: org.json.JSONException: 
Value <!DOCTYPE of type java.lang.String cannot be converted to JSONObject

Instagram API 链接:

https://www.instagram.com/pr.rezaabiri/?__a=1

这是我的 JSON 解析代码:

JsonObjectRequest jsonObjectRequest = new
JsonObjectRequest(Request.Method.GET, url, null, response - > 
    try 

        JSONObject graphql = response.getJSONObject("graphql");
        JSONObject user = graphql.getJSONObject("user");
        JSONObject edge_followed_by = user.getJSONObject("edge_followed_by");
        JSONObject edge_follow = user.getJSONObject("edge_follow");
        JSONObject edge_owner_to_timeline_media = user.getJSONObject("edge_owner_to_timeline_media");

        posts.setText(edge_owner_to_timeline_media.getString("count"));
        followers.setText(edge_followed_by.getString("count"));
        following.setText(edge_follow.getString("count"));
        txtAc.setText(user.getString("username"));
        Picasso.get().load(user.getString("profile_pic_url_hd")).into(imageProfile);

     catch (JSONException e) 
        e.printStackTrace();
    
, error - > Log.e("err:", error.toString()));

jsonObjectRequest.setRetryPolicy(new DefaultRetryPolicy(5000, 1, 1));
Volley.newRequestQueue(getApplicationContext()).add(jsonObjectRequest);

【问题讨论】:

您正在从该 API 请求接收 html,而不是 JSON。确保在尝试解析之前从该 API 请求中获取 JSON。 这段代码两天前有效 API 请求是否有身份验证?您是否发送了有效的 API 密钥或登录凭据?很可能您收到的是登录页面,而不是您期望的 JSON。 不,它没有认证,可能是你说的 【参考方案1】:

https://***.com/a/66019449

添加 /channel 似乎可以让它工作。

https://www.instagram.com/pr.rezaabiri/channel/?__a=1

【讨论】:

虽然您的答案是 100% 正确的,但如果该链接被移动、更改、合并到另一个链接或主站点消失,它也可能 100% 无用......因此,请edit您的答案,并将链接中的相关步骤复制到您的答案中,从而保证您的答案在本网站的生命周期内 100%! ;

以上是关于我无法从 Instagram api 解析 json的主要内容,如果未能解决你的问题,请参考以下文章

从 instagram api 获取帖子计数

503:Instagram 正在限制您的请求速率

无法获得 Instagram Basic Display API 的 access_token

我无法通过 instagram API 获取 instagram 用户的媒体详细信息

XMLHttpRequest 无法为 instagram 加载

Instagram API 通过逗号分隔的 ID 获取批量对象