#android #asp.net-mvc-3 #amazon-ec2 #iis-7.5 #http-status-code-400
#Android #asp.net-mvc-3 #amazon-ec2 #iis-7.5 #http-status-code-400
Вопрос:
У меня есть веб-сервис MVC 3, размещенный на экземпляре Amazon EC2. У меня есть приложение для Android, которое отправляет post-запрос в службу. Однако возвращается 400 неверных запросов, в которых говорится, что имя заголовка недопустимо. Я проверил журналы на сервере, и запрос не попал в IIS. В журнале ошибок HTTP есть только эти записи:
2011-10-07 02:01:05 xxx.xxx.xx.xx xxxxx xx.xxx.xx.xx 80 HTTP /1.1 POST /API/ UserAccount /Login 400 — Заголовок —
Не совсем уверен, что происходит. Я протестировал этот веб-сервис на сервере разработки, который поставляется с Visual Studio, и проблем не было. Вот код, который создает post-запрос на Android:
HttpPost post = new HttpPost(LOGIN_URL);
StringEntity se = new StringEntity(json);
se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,
"application/json"));
post.setEntity(se);
response = client.execute(post);
Приветствуется любая информация.
Спасибо.
Ответ №1:
Измените способ настройки HTTP-заголовков. Вот обновленная версия вашего кода:
HttpPost post = new HttpPost(LOGIN_URL);
StringEntity se = new StringEntity(json);
se.setContentEncoding("UTF-8");
se.setContentType("application/json");
post.setEntity(se);
response = client.execute(post);
Комментарии:
1. Я почти потратил все утро, а затем нашел его. Очень, очень спасибо.
2. Что здесь происходит технически? Я контролирую сервер, но не клиент, и клиент видит это, но я не вижу проблемы с заголовками, которые я получаю от них.