我想在 Anrdoid 应用程序中流式传输到 WebView。
我的代码是:
WebView cam = (WebView) findViewById(R.id.Cam);
cam.getSettings().setLoadWithOverviewMode(true);
cam.getSettings().setUseWideViewPort(true);
cam.getSettings().setBuiltInZoomControls(true);
cam.getSettings().setPluginState(WebSettings.PluginState.ON);
cam.getSettings().setPluginState(WebSettings.PluginState.ON);
cam.loadUrl("http://192.168.0.10");
它可以在模拟器中运行,但如果我在智能手机上安装该应用程序,它就不起作用。我收到一个错误
Header fields are too long for the server to interpret
如何摆脱这个错误?
最佳答案
编辑 sdkconfig
并增加 CONFIG_HTTPD_MAX_REQ_HDR_LEN
例如像这样:
CONFIG_HTTPD_MAX_REQ_HDR_LEN=1024
默认为 512。不要设置太高以免浪费 RAM,记住 ESP32 没有太多 RAM。
另外最好在你的 WebView 中设置 User-Agent header ,否则将使用系统默认的 User-Agent,根据实际的 Android 设备可以更长或更短。
cam.getSettings().setUserAgentString("Mozilla/5.0 (my app)");
以上内容可能正好适合请求长度的默认 512 字节。
关于android-webview - ESP32 httpd : Header fields are too long for the server to interpret,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67849381/