Метод HTTPPost с заголовками и телом

Мне нужно сделать HTTPPost на Cloudsight для распознавания изображений. Я имею:

BASE URL https://api.cloudsight.ai/v1/images

Headers: Content-Type  application/json
        Authorization  Cloudsight API_KEY

В нем говорится: "Отправьте изображение с помощью HTTP-запроса POST на конечную точку / изображения с параметром данных, закодированным в несколько частей или в формате base64". URL: http://docs.cloudsight.apiary.io/#reference/0/images-collection/send-an-image-for-identification?console=1 До сих пор я сделал это:

private class HTTPPOSTReguest extends AsyncTask<String, Void, String> {
        ProgressDialog dialog;
        String result = "";
        @Override

        protected void onPreExecute() {

        }

        @Override
        protected String doInBackground(String... params) {

            try {

                HttpResponse response = null;
                HttpClient httpclient = new DefaultHttpClient();
                HttpPost httppost = new HttpPost(BASE_URL);
                httppost.addHeader("Content-Type", "application/json");
                httppost.addHeader("Authorization", "CloudSight buEA_pC6K7FXT60inM2eUQ");

                ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
                nameValuePairs.add(new BasicNameValuePair("images", encodedImage));
               httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

                response = httpclient.execute(httppost);
                int responseCode = response.getStatusLine().getStatusCode();

                
                HttpEntity entity = response.getEntity();
                if (entity != null) {
                    String responseBody = EntityUtils.toString(entity);
                    result = responseBody;
                }
            }  catch (IOException e) {
                e.printStackTrace();
            }
            return result;
        }

Бут может показаться успешным. Может кто-то предложить совет

1 ответ

Решение

Несколько вещей, которые я заметил, просматривая это. Во втором фрагменте сверху заголовок Authorization гласит:

Cloudsight API_KEY вместо CloudSight API_KEY

Не уверен, что это просто быстрая опечатка или это в коде. В примере кода есть строка чтения:

HttpPost httppost = new HttpPost("https://api.cloudsightapi.ai");

Это должно быть вместо:

HttpPost httppost = new HttpPost("https://api.cloudsight.ai/v1/images");

Дайте этому шанс и дайте нам знать, как оно идет!

Другие вопросы по тегам