Rac*_* Id 3 android-webview esp32 arduino-esp32
我想流式传输到 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");
Run Code Online (Sandbox Code Playgroud)
它可以在模拟器中运行,但如果我在智能手机上安装该应用程序,它就无法运行。我收到一个错误
Header fields are too long for the server to interpret
Run Code Online (Sandbox Code Playgroud)
如何摆脱这个错误?
编辑sdkconfig并增加CONFIG_HTTPD_MAX_REQ_HDR_LEN例如这样:
CONFIG_HTTPD_MAX_REQ_HDR_LEN=1024
Run Code Online (Sandbox Code Playgroud)
默认值为 512。不要将其设置得太高,以免浪费 RAM,请记住 ESP32 没有太多 RAM。
另外,最好在 WebView 中设置 User-Agent 标头,否则将使用系统默认的 User-Agent,该标头可能更长或更短,具体取决于实际的 Android 设备。
cam.getSettings().setUserAgentString("Mozilla/5.0 (my app)");
Run Code Online (Sandbox Code Playgroud)
上面的内容可能正好适合请求长度的默认 512 字节。
| 归档时间: |
|
| 查看次数: |
6328 次 |
| 最近记录: |