Anonimowy obiekt przesyłania plików do Imgur API (JSON) daje błąd uwierzytelniania 401

Stworzyłem klasęUploadToImgurTask jako AsyncTask, który pobiera pojedynczy parametr ścieżki pliku, tworzy i ustawia MultiPartEntity, a następnie używa Apache HttpClient do przesłania obrazu ze wspomnianym obiektem. Odpowiedź JSON z Imgur jest zapisywana w obiekcie JSONObject, którego zawartość wyświetla się w LogCat dla własnego zrozumienia.

Oto zrzut ekranu JSON, który otrzymuję od Imgur:

Sprawdziłem status błędu 401 na api.imgur.com i mówi, że muszę uwierzytelnić się za pomocą OAuthpomimo fakt, że Imgur bardzo wyraźnie stwierdził, że aplikacje nie muszą korzystać z OAuth, jeśli obrazy są przesyłane anonimowo (co właśnie robię obecnie).

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;
    }
}

Po tym, jak doInBackground zwraca link do przesłanego obrazu do onPostExecute, chcę skopiować go do schowka systemowego, ale Eclipse nadal mówi, że getSystemService (String) nie jest zdefiniowany w mojej klasie ASyncTask.

Nie ma legalnego sposobu na zwrócenie linku (String) z powrotem do głównego wątku, więc muszę zrobić wszystko, co mam zrobić w ramach onPostExecute w UploadToImgurTask (który rozszerza 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);
}

Co powoduje problem?

questionAnswers(1)

yourAnswerToTheQuestion