小程序uploadFile 与 Error parsing HTTP request header 错误

填坑,这个bug已经改好10来天了,今天才想起来要写篇博客记录分享一下

因为腾讯云域名审核的原因,10天前才第一次试跑小程序,进行前后端交互。

第一次跑发现微信开发者平台还没有注册,直接飚红

在这里插入图片描述好吧,新手上路总是会翻车的

顺便说一下,服务器域名注册写到端口就好了

可以配置端口,如 https://myserver.com:8080,但是配置后只能向 https://myserver.com:8080 发起请求。
如果向 https://myserver.com、https://myserver.com:9091 等 URL 请求则会失败。

可以不配置端口。如 https://myserver.com,那么请求的 URL 中也不能包含端口
443 端口也不可以。如果向 https://myserver.com:443 请求则会失败。

注册完后,再跑一遍

没有报错,成了?

后端那边没有反应,突然间

2020-01-04 12:05:52.607  INFO 5008 --- [nio-8080-exec-1] o.apache.coyote.http11.Http11Processor   : Error parsing HTTP request header
 Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level.

java.lang.IllegalArgumentException: Invalid character found in method name. HTTP method names must be tokens
        at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:415) ~[tomcat-embed-core-9.0.29.jar!/:9.0.29]
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:260) ~[tomcat-embed-core-9.0.29.jar!/:9.0.29]
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.29.jar!/:9.0.29]
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860) ~[tomcat-embed-core-9.0.29.jar!/:9.0.29]
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1591) ~[tomcat-embed-core-9.0.29.jar!/:9.0.29]
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.29.jar!/:9.0.29]
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.29.jar!/:9.0.29]
        at java.base/java.lang.Thread.run(Thread.java:830) ~[na:na]

不单文件没有上传成功,服务器都卡死了

CSDN找答案,

答案一:

Tomcat的header缓冲区增加,在server.xml中增加maxHttpHeaderSize字段

<Connector connectionTimeout="20000" maxHttpHeaderSize="8999" port="8080" 
protocol="HTTP/1.1" redirectPort="8443"/>

失败,任然报相同的错误

答案二:

换Tomcat版本,但后端的已经是最新版了

答案三:

把请求由https改成http

这就很麻烦了,但凡开发过小程序都知道小程序必须用https

束手无策

真以为要推翻搞好的http重新搞https了

但是后端同学不知道在哪看的,申请一个SSL证书,部署在服务器上,就可以用小程序访问服务器域名了。

成功,小程序的照片成功上传服务器。

猜你喜欢

转载自blog.csdn.net/qq_43249043/article/details/103948432