В очередной раз про запросы http/2.0



  • Прошу подсказку, как сделать Post-запрос http/2.0.
    Http-client BAS не поддерживает данный протокол. Браузер использует именно http/2, а при использовании версии 1/1 сервер отдает другие данные (палит).
    Пробовал PHP 7.4 - curl безо всяких бубнов сразу работает по версии http/2 (но нужен многопоточный проект BAS), а curlwrapper не получается заставить работать на меня. Подскажите, где я промахнулся или иные пути.

    native_async("curlwrapper","easyperform", JSON.stringify(
         {
            write_to_string:true,
            options:
            {
               CURLOPT_URL: "https://сайт.com/", 
               CURLOPT_HTTP_VERSION: 3 , // 4 и 5 тоже пробовал
    
               CURLOPT_HTTPHEADER: [
         
                   "Accept: */*",
                   "Accept-Encoding: gzip,deflate",
                   "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36",
                   "Upgrade-Insequre-Requests: 1",
                   "cache-control: max-age=0",
                   "te: trailers"
                   ],
         
               CURLOPT_SSL_VERIFYPEER: 0,
               CURLOPT_SSL_VERIFYHOST: 0,
               CURLOPT_USE_SSL: 3,
         
               CURLOPT_PROXY: "192.168.33.44:8888"
            }
         }))!
         [[RES]] = _result();
    

    Если есть решение на ноде, прошу подсказать с работающим npm-модулем под BAS и поддерживаемые версии 6 или 12

    upd. Конечно же нужна возможность работать с прокси.



  • @Webmaster said in В очередной раз про запросы http/2.0:

    Если есть решение на ноде, прошу подсказать с работающим npm-модулем под BAS и поддерживаемые версии 6 или 12

    Axios
    https://www.npmjs.com/package/axios



  • Попробуйте в headers дописать

    "protocol: 2.0",
    

    или

    "protocol: 2",
    

    Сам с таким не сталкивался, но может и прокатит.



  • @gurkin4
    Этот вариант сразу был не похож на рабочее решение, но я проверил. Увы



  • @Webmaster Ну..., например для программы Click'Em в шапке скрипта пишутся параметры:

    <set>protocol[=]2.0</set>
    <set>redirect[=]false</set>
    

    и всё отлично работает. Возможно и здесь есть какие-то похожие настройки.



  • @Webmaster Вообще он должен быть включен по умолчанию, если только при сборке его не отключили.

    В консольном curl он включается --http2

    Но тут libcurl и него вроде бы нет такой опции (https://curl.se/libcurl/c/curl_easy_setopt.html), поэтому возможно придется собирать самому или использовать Nodejs библиотеки типа got



  • т.к. я не великий спец в ноде то ситуация такая:

    • axios на всё ругается "not a function";
    • got при подключении ругается на что-то связанное с ES (видимо нужно было попробовать более старые версии);
    • fetch-h2 работает, но не пристёгивается прокси;

    т.к. нужно было быстрее проверить гипотезу по работе с сайтом, перестал терять время и нарисовал прокси-шлюз для своих запросов на php7.4 (curl)


Log in to reply