7 / 6 / 1
Регистрация: 29.03.2015
Сообщений: 501
1

Выдает ошибку при Post Запросе http/1.1 404 bad request

06.08.2017, 18:19. Показов 4697. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, IdIOHandler, IdIOHandlerSocket,
  IdIOHandlerStack, IdSSL, IdSSLOpenSSL, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdHTTP, Vcl.StdCtrls, IdCompressorZLib;
 
function Pars(T_, ForS, _T:string):string;   //Функция парсинга
var a, b:integer;
begin
Result := '';
if (T_='') or (ForS='') or (_T='') then Exit;
a:=Pos(T_, ForS);
if a=0 then Exit else a:=a+Length(T_);
ForS:=Copy(ForS, a, Length(ForS)-a+1);
b:=Pos(_T, ForS);
if b>0 then
Result:=Copy(ForS, 1, b - 1);
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
list:Tstrings;
res:Tstrings;
s:string;
begin
IdHttp1.Compressor := TIdCompressorZLib.Create(IdHttp1);
form1.IdHTTP1.Request.UserAgent:= 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 YaBrowser/16.9.1.1192 Yowser/2.5 Safari/537.36';
form1.IdHTTP1.Request.Host:= 'homegate.ru';
form1.IdHTTP1.Request.Accept:='text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1';
form1.IdHTTP1.Request.AcceptLanguage:='ru-RU,ru;q=0.9,en;q=0.8';
form1.IdHTTP1.Request.AcceptCharset:='iso-8859-1, utf-8, utf-16, *;q=0.1';
form1.IdHTTP1.Request.ContentType:='application/x-www-form-urlencoded';
form1.IdHTTP1.Request.AcceptEncoding:='gzip, deflate, br';
list:= Tstringlist.Create;
res:= Tstringlist.Create;
Form1.IdHTTP1.Get('https://beepcar.ru/');
res.text:= form1.IdHTTP1.GET('https://beepcar.ru/api/v1/token');
s:=pars('_xsrf":"',res.Text,'"'); вытаскиваем часть текста для отправки пост запроса
list.Add('_xsrf'+s);
list.Add('phone=тут телефон');
form1.Memo1.Text:= form1.IdHTTP1.Post('https://beepcar.ru/api/v1/auth/phone',list);
end;
можете помочь с данным вопросом? выдает ошибку при Post Запросе http/1.1 404 bad request, не знаю что и делать, много что перепробовал
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.08.2017, 18:19
Ответы с готовыми решениями:

Bad Request при Post-запросе. W10,RAD XE3,Indy10
Добрый день, знатоки. Помогите в решении следующего вопроса: Есть некий веб-сервис со своим АПИ. Была написана на Delphi7 и родном Indy...

Делаю брут для одноклассников. Ошибка http 1.1 Bad Request
Это моя первая версия и тут пока нету поддержки прокси и много поточности..... Прошу помочь! Код удален, во избежание... Правила...

HTTP/1.1 403 Forbidden при post-запросе
Delphi 10.2.2 в Request idhttp1 вроде указал всё, что в снифере передает. кроме куков, в снифере они в этом...

8
71 / 66 / 35
Регистрация: 09.04.2009
Сообщений: 364
Записей в блоге: 1
07.08.2017, 16:03 2
Лучший ответ Сообщение было отмечено Valimer как решение

Решение

Тебе же пишут, что твой заголовок запроса не верный!

post запрос должен быть application/json

Delphi
1
form1.IdHTTP1.Request.Accept:='application/json, text/plain, */*';
Delphi
1
 list.Add('{"phone":"тут телефон","_xsrf":"твой token"}');
0
7 / 6 / 1
Регистрация: 29.03.2015
Сообщений: 501
07.08.2017, 16:06  [ТС] 3
не помогло
0
71 / 66 / 35
Регистрация: 09.04.2009
Сообщений: 364
Записей в блоге: 1
07.08.2017, 16:08 4
что пишет
0
7 / 6 / 1
Регистрация: 29.03.2015
Сообщений: 501
07.08.2017, 16:12  [ТС] 5
тоже самое 1.1 400/bad request , отправляю это:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
procedure TForm1.Button1Click(Sender: TObject);
var
list:Tstrings;
res:Tstrings;
s:string;
begin
//IdHttp1.Compressor := TIdCompressorZLib.Create(IdHttp1);
form1.IdHTTP1.Request.UserAgent:= 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 YaBrowser/16.9.1.1192 Yowser/2.5 Safari/537.36';
form1.IdHTTP1.Request.Host:= 'homegate.ru';
form1.IdHTTP1.Request.Accept:='text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1';
form1.IdHTTP1.Request.AcceptLanguage:='ru-RU,ru;q=0.9,en;q=0.8';
form1.IdHTTP1.Request.AcceptCharset:='iso-8859-1, utf-8, utf-16, *;q=0.1';
form1.IdHTTP1.Request.ContentType:='application/x-www-form-urlencoded';
form1.IdHTTP1.Request.AcceptEncoding:='gzip, deflate, br';
 
list:= Tstringlist.Create;
res:= Tstringlist.Create;
res.text:= form1.IdHTTP1.GET('https://beepcar.ru/api/v1/token');
s:=pars('_xsrf":"',res.Text,'"');
list.Add('{"phone":"тут мой телефон","_xsrf":"'+s+'"}');
form1.Memo1.Text:= form1.IdHTTP1.Post('https://beepcar.ru/api/v1/auth/phone',list);
end;
0
71 / 66 / 35
Регистрация: 09.04.2009
Сообщений: 364
Записей в блоге: 1
07.08.2017, 16:14 6
кстати где куки блин IdCookieManager

Там идет проверка куков. если их нет то и запрос не верный
0
7 / 6 / 1
Регистрация: 29.03.2015
Сообщений: 501
07.08.2017, 16:45  [ТС] 7
coockiemanager подключен

Добавлено через 29 минут
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var
list:Tstrings;
res:Tstrings;
s:string;
begin
IdHttp1.Compressor := TIdCompressorZLib.Create(IdHttp1);
form1.IdHTTP1.Request.UserAgent:= 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 YaBrowser/16.9.1.1192 Yowser/2.5 Safari/537.36';
form1.IdHTTP1.Request.Host:= 'homegate.ru';
form1.IdHTTP1.Request.Accept:='text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1';
form1.IdHTTP1.Request.AcceptLanguage:='ru-RU,ru;q=0.9,en;q=0.8';
form1.IdHTTP1.Request.AcceptCharset:='iso-8859-1, utf-8, utf-16, *;q=0.1';
form1.IdHTTP1.Request.Accept:='application/json, text/plain, */*';
form1.IdHTTP1.Request.AcceptEncoding:='gzip, deflate, br';
 
list:= Tstringlist.Create;
res:= Tstringlist.Create;
res.text:= form1.IdHTTP1.GET('https://beepcar.ru/api/v1/token');
s:=pars('_xsrf":"',res.Text,'"');
list.Add('json={"phone":"'+form1.edit1.text+'","_xsrf":"'+s+'"}');
form1.Memo1.Text:= form1.IdHTTP1.Post('https://beepcar.ru/api/v1/auth/phone', list);
end;
вообще ничего не меняется
0
71 / 66 / 35
Регистрация: 09.04.2009
Сообщений: 364
Записей в блоге: 1
07.08.2017, 16:57 8
Лучший ответ Сообщение было отмечено Valimer как решение

Решение

При проверки оказалось, что Post запрос json превращает знаки как при Url.Encode . json в Tstrings нельзя помещать или как-то с кодировками мутить
0
7 / 6 / 1
Регистрация: 29.03.2015
Сообщений: 501
07.08.2017, 17:18  [ТС] 9
уже прочел это в другом месте, там советовали memostream

Добавлено через 16 минут
решил проблему, все оки, просто до этого с json не сталкивался, за направление в поиске проблемы, спасибо
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var
res:Tstrings;
p2: TStringStream;
s,s1:string;
begin
IdHttp1.Compressor := TIdCompressorZLib.Create(IdHttp1);
form1.IdHTTP1.Request.UserAgent:= 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 YaBrowser/17.6.1.749 Yowser/2.5 Safari/537.36';
form1.IdHTTP1.Request.Host:= 'beepcar.ru';
form1.IdHTTP1.Request.AcceptLanguage:='ru,en;q=0.8';
form1.IdHTTP1.Request.AcceptCharset:='iso-8859-1, utf-8, utf-16, *;q=0.1';
form1.IdHTTP1.Request.Accept:='application/json, text/plain, */*';
form1.IdHTTP1.Request.AcceptEncoding:='gzip, deflate, br';
form1.IdHTTP1.Request.ContentType:='application/json';
 
res:= Tstringlist.Create;
res.text:= form1.IdHTTP1.GET('https://beepcar.ru/api/v1/token');
s:=pars('_xsrf":"',res.Text,'"');
s1:= '{"phone":"телефон","_xsrf":"'+s+'"}';
 
p2:= TStringStream.Create(s1);
form1.Memo1.Text:= form1.IdHTTP1.Post('https://beepcar.ru/api/v1/auth/phone', p2);
end;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.08.2017, 17:18
Помогаю со студенческими работами здесь

В работающем проекте с начала недели при любом запросе к Liveinternet.ru indy выдает ошибку: "socket error 10054"
Программа успешно годами парсила стату с Liveinternet до начала этой недели. С этой недели как бабка отшептала, выдает ошибку "Socket...

Ошибки Synapse (HTTP/1.1 400 Bad Request / HTTP/1.1 413 Request Entity Too Large)
Добрый день. При работе с Synapse начали возникать вот такие вот две ошибки (HTTP/1.1 400 Bad Request / HTTP/1.1 413 Request Entity Too...

IdHttp и запрос методом get выдает ошибку bad request
нужно отправить запрос на сайт смс рассылки (sms.ru) делаю следующий присваиваю значения idhttp: и отправляю запрос: ...

Ошибка при добавлении данных HTTP Status 400 Bad Request
Добрый день! Столкнулся с новой проблемой, при добавлении данных вылезает данная ошибка. Вроде как даже до сервера данные не доходят в set....

Открываю: localhost/iishelp выдает ошибку 400 Bad Request - The data is invalid. (13) Internet Security and Acceleration Server
Никак не могу понять в чем проблема??? Настроил IIS, вроде никаких проблем. Открываю: localhost/iishelp выдает ошибку 400 Bad...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

Новые блоги и статьи
Разбиваем монолит на два микросервиса и реализуем CI/CD
ArchitectMsa 20.03.2025
Когда команда растет, а функциональность монолита расширяется, поддерживать и развивать такую систему становится все труднее. Разработчики начинают тратить много времени на разбор сложных. . .
Python и PDF: Создание и редактирование файлов
py-thonny 20.03.2025
Работа с PDF-документами – одна из популярных задач в современной разработке. Python предлагает несколько инструментов для создания, чтения и редактирования PDF-файлов, среди которых особенно. . .
Корутины в Unity и производительно­сть WaitForSeconds
GameUnited 20.03.2025
Разработчики игр на Unity часто сталкиваются с вопросом: как выполнять действия через определённые промежутки времени, не блокируя основной поток игры? Тут как раз и приходят на помощь корутины —. . .
Криптография в PHP
Jason-Webb 20.03.2025
PHP предоставляет много криптографических возможностей: от встроенных функций хеширования до полноценных библиотек шифрования — арсенал средств довольно обширен. Но всё это бесполезно без понимания. . .
Lineedge (Semi-Alpha) 0.75@20: Что мы потеряли
Etyuhibosecyu 20.03.2025
С каждым новым стандартом Lineedge обретает новые возможности — это ясно, как божий день. Однако есть и другая сторона — избавление от устаревших и проблемных элементов. Обычно удаление. . .
Реализация перечислений в Go
golander 19.03.2025
Если вы перешли на Go с других языков программирования (как я), таких как C#, Java или Python, вы наверняка заметили, что Go не имеет встроенной поддержки перечислений (enumerations). Это может стать. . .
Шаблон API Gateway в микросервисной архитектуре
MatrixArchitect 19.03.2025
API Gateway — один из основных компонентов микросервисной архитектуры. Фактически, API Gateway представляет собой сервис, который располагается между клиентскими приложениями и бэкенд-микросервисами,. . .
C++26: Что мы потеряли
bytestream 19.03.2025
С каждым новым стандартом C++ обретает новые возможности — это ясно, как божий день. Однако есть и другая сторона — избавление от устаревших и проблемных элементов. Обычно удаление функциональности. . .
Async/await в C#: Асинхронное программировани­е в действии
UnmanagedCoder 19.03.2025
Разработка современных приложений немыслима без понимания асинхронного программирования. Если вы когда-либо создавали приложение, которое взаимодействует с внешними ресурсами — будь то работа с. . .
Сопоставление с образцом (Pattern Matching) в Python: Списки и словари
py-thonny 19.03.2025
Программисты любят, когда код говорит сам за себя. Представьте, что вы можете просмотреть структуру данных и мгновенно понять, что с ней делать — без сложных условий и вложенных проверок. Именно эту. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru