Код ошибки JSON-ответа 201, но в Android HTTP POST это должно быть 200

1

Как я пытаюсь опубликовать результат рейтинговой деятельности. После прочтения значения рейтинга от пользователя я вызываю веб-сервис HTTP POST и устанавливаю в него объект JSON. Поскольку мой веб-сервер нуждается в аутентификации, я также могу проверить это.

Но реальная проблема заключается в том, что код ответа должен быть 200, но я получаю 201. Пожалуйста, предложите мне, где я не ошибаюсь!

код:

        public static String sendJson(final int rating, final String url) {
    Thread t = new Thread() {
        public void run() {
            Looper.prepare(); // For Preparing Message Pool for the child
             HttpResponse response;

            // proxy
            final String PROXY = "xxx.xxx.xxx.xxx";
            // proxy host
            final HttpHost PROXY_HOST = new HttpHost(PROXY, 8080);
            HttpParams httpParameters = new BasicHttpParams();
            mHttpClient = new DefaultHttpClient(httpParameters);
            HttpConnectionParams.setConnectionTimeout(mHttpClient.getParams(),
                 10000); //Timeout Limit
            mHttpClient.getParams().setParameter(
                    ConnRoutePNames.DEFAULT_PROXY, PROXY_HOST);
            System.out.println("Sending proxy request: " + mHttpClient);
            // mHttpClient = new DefaultHttpClient();

            JSONObject json = new JSONObject();
            try {
                String reqUrl = new String(aBaseUrl + url);                  
                HttpPost post = new HttpPost(reqUrl);
                post.getParams().setParameter(
                        ConnRoutePNames.DEFAULT_PROXY, PROXY_HOST);
                post.addHeader(BasicScheme
                        .authenticate(new UsernamePasswordCredentials(
                                userName, password), "UTF-8", false));
                System.out.println("Sending Post proxy request: " + post);
                json.put("rating", rating);

                // json.put("password", pwd);
                // StringEntity se = new StringEntity( "JSON: " +json.toString());

                StringEntity se = new StringEntity(json.toString());
                System.out.println("JSON VALUE 2222 " + json.toString());
                se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,"application/json"));
                // post.setEntity(new
                // ByteArrayEntity(json.toString().getBytes("UTF8")));

                post.setEntity(se);
                response = mHttpClient.execute(post);
                /* Checking response */

                statusCode = response.getStatusLine().getStatusCode();
                System.out.println("Http Execute finish " + statusCode);

                if(statusCode==200)
                {
                    HttpEntity entity = response.getEntity();
                    String getResponseText = EntityUtils.toString(entity);
                    System.out.println(" Post Response Text from Server : "
                            + getResponseText);


                }

                if (response != null) {
                    // InputStream in = response.getEntity().getContent();
                    // //Get the data in the entity
                    // HttpEntity entity = response.getEntity();
                    // String getResponseText =
                    // EntityUtils.toString(entity);
                    // System.out.println(" Post Response Text from Server : "
                    // + getResponseText);

                }
            } catch (Exception e) {
                e.printStackTrace();
                // createDialog("Error", "Cannot Estabilish Connection");
            }
            Looper.loop(); // Loop in the message queue
        }
    };
    t.start();
    return url;
}
Теги:
http-post

1 ответ

6
Лучший ответ

201 является нормальным кодом respoinse, который означает "Создано". Ваш веб-сервис сообщает об этом успех, и это нормально. Спецификация HTTP определяет этот код. См. http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

  • 0
    Да, большое спасибо за это! Но согласно моим спецификациям веб-сервисов я должен получить 200. Дайте мне знать, правильно ли я все делаю со стороны клиента Android?
  • 0
    Как правило, в Stackoverflow я принимаю ваш ответ ;-). Но просто нужно окончательное подтверждение вышеуказанного вопроса!
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню