libcurl 未在 OpenWrt 上將 POST 請求升級為 HTTP/2

libcurl 未在 OpenWrt 上將 POST 請求升級為 HTTP/2

當我使用 make menuconfig 編譯 OpenWrt 映像時,我會選中 libcurl 框,然後選中該框以添加 HTTP/2 支持,並確保也選中 nghttp2 庫。在發出請求的程式碼中,我將 CURLOPT_HTTP_VERSION 設定為 CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE,因為我的伺服器在所有瀏覽器請求上都使用 HTTP/2,並且是透過 https 進行的。

為了進行測試,我在支援 HTTP/2 的 Ubuntu 機器上編譯了curl,並向我在 OpenWrt 中請求的相同 URL 發出了 POST 請求,並且該請求使用了 HTTP/2。 OpenWrt 中的 HTTP/2 是否有已知問題?或者這是其他人已經遇到並且已經解決的問題嗎?沒有有用的調試數據,我已經挖掘了所有這些數據,但有點不知所措。

我正在使用 mbedTLS 作為我的 TLS/SSL 後端,以防萬一有用。

編輯更多資訊:運行此片段:

printf("%d\n", curl_version_info(CURLVERSION_NOW)->features & CURL_VERSION_HTTP2);

它列印了0,然後運行:

printf("%d\n", curl_version_info(CURLVERSION_NOW)->features & CURL_VERSION_SSL);

它列印了4.因此,即使我編譯包含 libcurl 的映像、檢查了 http2 支持並檢查了 SSL 支持,但實際上只包含了 SSL。然而,.sombedtls 和 libnghttp2 都有一個。

對此的任何幫助都會很有用。

相關內容