填坑,这个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证书,部署在服务器上,就可以用小程序访问服务器域名了。
成功,小程序的照片成功上传服务器。