Я работаю в Embarcadero RAD Studio C++ с Indy 10.6 ИЛИ Chilkat для публикации HTTP.
Я тестировал в веб-браузере с надстройкой RESTMAN, и запрос работает с теми же настройками, что и приложение! Затем я протестировал POSTMAN, и там тоже работает. Но только из моего приложения оно больше не хочет работать. Кажется, Cloudflare блокирует мне доступ к приложению, но я не знаю почему, поскольку оно работало нормально в течение многих лет.
Я немного покопался и увидел, что ошибка 403 возвращает HTML-код «Включить JavaScript и файлы cookie для продолжения» вместо JSON. Я также тестировал изменение отправленного UserAgent, но мне это не удалось.
Код: Выделить всё
TStringStream * Send = new TStringStream(rtf) ;
Send->Write(SIR, 2*lung); // SSLOptions->Method = sslvSSLv23;
IdSSLIOHandlerSocketOpenSSL->SSLOptions->Mode = sslmClient;
IdSSLIOHandlerSocketOpenSSL->SSLOptions->VerifyDepth = 0;
IdHTTP->Request->ContentType = "application/json";
//WORKS IN POSTMAN, NOT WORK IN INDY 10 now
//IdHTTP->Request->UserAgent = "PostmanRuntime/7.49.1";
//IdHTTP->Request->CustomHeaders->AddValue("Postman-Token", "xxxxxx");
IdHTTP->Request->UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0";
IdHTTP->Request->ContentEncoding = "utf-8";
IdHTTP->Request->AcceptCharSet = "utf-8";
IdHTTP->Post(ADRESA, Send, AResponseBody);.....
//403 Forbidden, html response "Enable JavaScript and cookies to continue"
Подробнее здесь: https://stackoverflow.com/questions/798 ... o-continue
Мобильная версия