При анонимной загрузке объекта File в Imgur API (JSON) выдается ошибка аутентификации 401

Я создал классUploadToImgurTask как AsyncTask, который принимает один параметр пути к файлу, создает и устанавливает MultiPartEntity, а затем использует Apache HttpClient для загрузки изображения с указанной сущностью. Ответ JSON от Imgur сохраняется в JSONObject, содержимое которого я показываю в LogCat для собственного понимания.

Вот скриншот JSON, который я получаю от Imgur:

Я посмотрел ошибку 401 Статус на api.imgur.com, и он говорит, что мне нужно для проверки подлинности с использованием OAuthнесмотря на тот факт, что Imgur очень четко заявил, что приложениям не нужно использовать OAuth, если изображения загружаются анонимно (что я сейчас и делаю).

class UploadToImgurTask extends AsyncTask<String, Void, Boolean> {
    String upload_to;

    @Override
    protected Boolean doInBackground(String... params) {
        final String upload_to = "https://api.imgur.com/3/upload.json";
        final String API_key = "API_KEY";
        final String TAG = "Awais";

        HttpClient httpClient = new DefaultHttpClient();
        HttpContext localContext = new BasicHttpContext();
        HttpPost httpPost = new HttpPost(upload_to);

        try {
            final MultipartEntity entity = new MultipartEntity(
                    HttpMultipartMode.BROWSER_COMPATIBLE);

            entity.addPart("image", new FileBody(new File(params[0])));
            entity.addPart("key", new StringBody(API_key));

            httpPost.setEntity(entity);

            final HttpResponse response = httpClient.execute(httpPost,
                    localContext);

            final String response_string = EntityUtils.toString(response
                    .getEntity());

            final JSONObject json = new JSONObject(response_string);

            Log.d("JSON", json.toString()); //for my own understanding 

            return true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    }
}

После того, как doInBackground возвращает ссылку на загруженное изображение в onPostExecute, я хочу скопировать его в системный буфер обмена, но Eclipse продолжает говорить, что getSystemService (String) не определен в моем классе ASyncTask.

Не существует законного способа вернуть ссылку (строку) обратно в основной поток, поэтому я должен делать все, что должен, в onPostExecute внутри UploadToImgurTask (который расширяет ASyncTask)

    @Override
protected void onPostExecute(String result) {
    super.onPostExecute(result);
    ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); 
    ClipData clip = ClipData.newPlainText("label", "Text to copy");
    clipboard.setPrimaryClip(clip);
}

В чем причина проблемы?

Ответы на вопрос(1)

Ваш ответ на вопрос