无法在Android上的HTTP POST的API调用上解析主机

时间:2018-10-26 11:09:10

标签: android rest azure http-post

URL是正确的,我已经尝试了来自python的示例,所以我认为URL不是问题。 我想这与语法有关。 我在清单中添加了以下内容:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

这应该确保我的应用可以访问互联网,并且在其他部分正常运行时也可以使用

这是我得到错误的逻辑:

try {
                URL url = new URL("https://centralinda.api.cognitive.microsoft.com/face/v1.0/verify");//?faceId1=" + face1 + "&faceId2=" + face2);
                HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
                urlConnection.setRequestMethod("POST");

                urlConnection.setRequestProperty("Ocp-Apim-Subscription-Key", "**");
                JSONObject input   = new JSONObject();
                input.put("faceId1",face1);
                input.put("faceId2",face2);
                Log.v("beforereq","beforereq");
                OutputStreamWriter wr= new OutputStreamWriter(urlConnection.getOutputStream());
                wr.write(input.toString());
                wr.flush();
                Log.v("calling123","calling");
                try {
                    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
                    StringBuilder stringBuilder = new StringBuilder();
                    String line;
                    while ((line = bufferedReader.readLine()) != null) {
                        stringBuilder.append(line).append("\n");
                    }
                    bufferedReader.close();
                    getting = stringBuilder.toString();
                    Log.v("Gettinganswer", getting);
                    return  getting;
                } finally {
                    urlConnection.disconnect();
                }
            }
            catch(Exception e) {
                Log.e("ERROR", e.getMessage(), e);
                return null;
            }
        }

2 个答案:

答案 0 :(得分:1)

  

> ping centralinda.api.cognitive.microsoft.com

     

Ping请求找不到主机centralinda.api.cognitive.microsoft.com。请检查名称,然后重试。

centralinda.api.cognitive.microsoft.com不是有效的主机名。它没有在DNS中注册。

答案 1 :(得分:0)

无法解析主机,仅在URL存在问题时显示,您是否尝试过在邮递员中调用api?