【问题标题】:HttpUrlRequest with sercret id带有秘密 ID 的 Http Url 请求
【发布时间】:2017-03-05 14:37:53
【问题描述】:

我创建了测试 WebServices,我正在尝试从这个 url 获取 json

https://query.yahooapis.com/v1/public/yql?q=SELECT%20*%20FROM%20flickr.groups.info%20WHERE%20group_id%3D'22637658%40N00'&format=json&diagnostics=true&callback=

我一直收到错误 400,雅虎也给了我一个秘密 ID 和密钥,但我不知道在哪里设置它们。 当我用:test http request 欺骗方法时,一切正常。

网络服务代码:

 public static void httpRequest(String params, String urlAdress, final CallbackBool callback){
        try {

            URL url = new URL("https://query.yahooapis.com/v1/public/yql?q=SELECT%20*%20FROM%20flickr.groups.info%20WHERE%20group_id%3D'22637658%40N00'&format=json&diagnostics=true&callback=");
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("POST");
            connection.setReadTimeout(10000);
            connection.setConnectTimeout(15000);
            connection.setDoOutput(true);
            Log.i("SHOW CONNECTION:",connection.toString());
            getJsonData(connection, new ResponseCallback<String>() {
            @Override
            public void onSuccess(String result) {
                Log.i("SHOW NEW JSON",result);
                callback.doJob(true);
            }

            @Override
            public void onFailure(String result) {
                Log.i("FAILLL!","FAILLL");
                callback.doJob(false);
               }
           });
          } catch (MalformedURLException e) {
              e.printStackTrace();
              callback.doJob(false);
          } catch (IOException e) {
              e.printStackTrace();
              callback.doJob(false);
          }
}

我的结果:错误连接:400

我需要在哪里放置/设置密钥和密钥 ID 以及如何设置?

【问题讨论】:

  • 请参阅 Yahoo 文档
  • 我不明白....所以我不需要在请求中输入 sercret id 和密钥? ://
  • 雅虎还能如何获得它?考虑一扇带有普通钥匙的门(不是无线的,不是代码,只是普通的钥匙)。您尝试打开门,但门已锁定(错误 400)。你口袋里有钥匙,但你不使用它。当需要您不提供的钥匙时,门(雅虎)将如何打开?
  • 我有钥匙但不知道在哪里设置....这是我的问题

标签: android web-services httprequest


【解决方案1】:

在您的 URL 中的任何位置,添加:

&api_key=[your key here]

将其添加到末尾:

url += "&api_key='" + api_key + "'";

如果您在浏览器中打开您提供的 URL,则会显示以下结果:

{"error":{"lang":"en-US","diagnostics":{"publiclyCallable":"true"},"description":"Cannot find required keys in where clause;  got 'group_id', expecting required keys: (api_key,group_id)"}}

它缺少 api_key。

【讨论】:

  • https://query.yahooapis.com/v1/public/yql?q=SELECT%20*%20FROM%20flickr.groups.info%20WHERE%20group_id%3D'22637658%40N00'&amp;format=json&amp;diagnostics=true&amp;callback="+"&amp;api_key="+apiKey .....我喜欢这样做,但仍然无法正常工作
  • 删除或提供回调 (&callback=) 并确保 API 密钥有效。复制完整链接并在浏览器中打开以获取错误消息。确保 api 密钥在那里并且它不是变量名
  • 我删除了它不起作用的回调......但我试图理解你所说的“提供回调”是什么意思......对不起我的英语不好
  • Query syntax error(s) [line 1:6 expecting fields_or_star got ' ']....告诉我这个错误
  • “提供回调”意味着给它一些作为回调的东西。虽然不确定输入需要什么。至于解决问题,它可能需要'。查看更新
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-26
  • 2017-01-18
  • 1970-01-01
  • 1970-01-01
  • 2020-06-02
  • 2017-08-16
相关资源
最近更新 更多