Android и аутентифицированный HttpPut с телом JSON - PullRequest
1 голос
/ 18 августа 2011

Как написать HttpPut запрос с аутентификацией на Android?

(я пытаюсь обойти использование HttpURLConnection, которое кажется серьезным с ошибками (по крайней мере, в Android 2.2), но GET работает нормально. Я хотел бы отправить JSON-представление массива, и У меня есть правильные учетные данные, уже установленные с помощью PasswordAuthentication.)

Ответы [ 2 ]

3 голосов
/ 18 августа 2011

Для начала необходимо иметь токен аутентификации.А затем просто добавьте эту строку.

httpGet.setHeader("Authorization", "Bearer " + yourToken);
0 голосов
/ 06 сентября 2011

Вот одно общее решение.

HttpParams httpParameters = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParameters, this.CONNECT_TIMEOUT);
HttpConnectionParams.setSoTimeout(httpParameters, this.CONNECT_TIMEOUT);

DefaultHttpClient client = new DefaultHttpClient(httpParameters);

// Retrieve user credentials.
SharedPreferences settings = context.getSharedPreferences("LOGIN", 0);
String loginNameString = settings.getString("login_name", null);
String passwordString = settings.getString("password", null);

UsernamePasswordCredentials credentials = 
             new UsernamePasswordCredentials(loginNameString, passwordString);
AuthScope authScope = new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT);
             client.getCredentialsProvider().setCredentials(authScope, 
                                                              credentials);

HttpPut put = new HttpPut(UPLOAD_URL);

try
{
    put.setEntity(new StringEntity(responseJSONArray.toString(),    
                       SERVER_PREFERRED_ENCODING));
    put.addHeader("Content-Type", "application/json");
    put.addHeader("Accept", "application/json");
    HttpResponse response = client.execute(put);

    // 200 type response.
    if (response.getStatusLine().getStatusCode() >= HttpStatus.SC_OK &&
    response.getStatusLine().getStatusCode() < HttpStatus.SC_MULTIPLE_CHOICES)
    {
      // Handle OK response etc........
    }
}
catch (Exception e)
{
}
...