Как установить REST-запрос длины контента - для Android - PullRequest
0 голосов
/ 26 сентября 2011

Я пытаюсь подключиться к веб-сервису, используя Java и REST.Это то, что я пробовал, и я получаю ошибку 411.

   public static String getSiteToken(String host,String token) throws IOException, JSONException 
{
    host = host.replace("https://", "http://");
    URL url = new URL(host + "/tokens");
    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    conn.setUseCaches(false);
    conn.setDoOutput(true);
    conn.setRequestMethod("POST");
    conn.setRequestProperty("Content-Type", "application/json");
    conn.setRequestProperty("Authorization", token);
    conn.setRequestProperty("Content-Length", "57");
    //conn.setFixedLengthStreamingMode(57);
        conn.setRequestProperty("Connection","keep-alive");
    InputStream is = conn.getInputStream();
    InputStreamReader isr = new InputStreamReader(is);
    BufferedReader rd = new BufferedReader(isr);
    JSONObject json = new JSONObject(rd.readLine());
    rd.close();
    conn.disconnect();
    return json.getString("token");


}

Я также попробовал метод "setFixedLengthStreamingMode", но приложение не отвечало после этой строки кода.Все отлично работает при подключении с REST Client для Firefox.Я не могу понять это.Спасибо!

1 Ответ

0 голосов
/ 23 мая 2012

Вы ничего не пишите в тело запроса. В этом случае длина контента должна быть 0, а не 57

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...