Страница 1 из 1

Не удается выполнить POST запрос после GET запроса

Добавлено: 23 июл 2014, 03:06
tj182
Всем привет. Моя проблема заключается в следующем: после выполнения GET запроса авторизации и сохранения cookies пытаюсь выполнить POST запрос на добавление данных, но сервер отвечает 500 кодом. Что забавно, так если POST строку запроса сформировать в браузере, то она корректно выполняется. Код ниже.

[syntax=java]
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet(site + "/admin/users/login_do/?login=admin&password=demo");
HttpResponse response = httpclient.execute(httpget);
List<Cookie> cookies = httpclient.getCookieStore().getCookies();
HttpPost httppost = new HttpPost(site + "/admin/news/add/5/item/do/");
httppost.addHeader("Cookie", "PHPSESSID="+cookies.get(0).getValue()+"; umicms_session="+cookies.get(1).getValue()+"; stat_id="+cookies.get(2).getValue());

List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("active", "1"));
nameValuePairs.add(new BasicNameValuePair("name", "test"));
nameValuePairs.add(new BasicNameValuePair("data[new][anons]", "anno"));
nameValuePairs.add(new BasicNameValuePair("data[new][content]", "cont"));
nameValuePairs.add(new BasicNameValuePair("data[new][publish_time]", "1420202020"));

httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs, HTTP.UTF_8));
response = httpclient.execute(httppost);
StatusLine status = response.getStatusLine();
Log.d("my",String.valueOf(status.getStatusCode()));
Log.d("my",String.valueOf(status.getReasonPhrase()));
[/syntax]

Я уже пытался выполнить POST при помощи HttpURLConnection, но также получал 500 ответ.
Кто может подсказать, в чем может быть проблема?

Re: Не удается выполнить POST запрос после GET запроса

Добавлено: 24 июл 2014, 20:33
tj182
Проблема решена, просто я забыл послать с ПОСТ запросом csrf токен и поставить в заголовках Referer. Тему можно заакрыть