[http-nio-8080-exec-6] org.apache.coyote.http11.AbstractHttp11Processor.process Erreur d'analyse de l'en-tête de la requête HTTP
Remarque?: d'autres occurrences d'erreurs d'analyse de l'en-tête HTTP seront enregistrées au niveau DEBUG.
java.lang. IllegalArgumentException?: caractère non valide trouvé dans la cible de la requête. Les caractères valides sont définis dans la RFC 7230 et la RFC 3986
at org.apache.coyote.http11.AbstractNioInputBuffer.parseRequestLine(AbstractNioInputBuffer.java:283)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1045)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1533)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1489)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
Suivez les méthodes possibles mentionnées sur Internet et définissez maxHttpHeaderSize sur "1024000", mais cela ne fonctionne toujours pas
Voici les codes de modèle et de script. Je ne publierai pas le code de style si je pense qu'il n'a aucun impact
. <modèle>
<p class="container">
<image class="titleImage" src="http://www.mrldh.com:8080/EasyNotes/img/sky.jpg"></image>
<p class="title">
<text class="titleButton">添加課程</text>
</p>
<image class="contentImage" src="http://www.mrldh.com:8080/EasyNotes/img/sea.jpg"></image>
<p class="content">
<!--新建課程名字輸入-->
<p class="inputPart">
<input @input="cInput" class="nameInput" type="text" placeholder="課程名字"/>
<text class="remind">注意:課程名字不能與已有課程名字重合</text>
<p class="confirButton" type="text">
<text @click="addCourse" class="buttonContent">添加課程</text>
</p>
</p>
<!--已有課程顯示列表-->
<p class="coursePart">
<list class="list">
<cell class="cell" v-for="data in courses">
<p @click="courseClick" class="courseRecord">
<text class="courseName">{{data.courseName}}</text>
<text>{{data.id}}</text>
</p>
</cell>
</list>
</p>
</p>
</p>
</modèle>
<script>
var stream = weex.requireModule('stream');
const picker = weex.requireModule('picker');
var jumpController=weex.requireModule('JumpModel');
const storage=weex.requireModule('storage')
var tostmodal = weex.requireModule('modal')
var courseName;
var userId;
export default {
data () {
return {
courses:"unknow",
}
},
methods: {
cInput(event){
//獲取新建課程的名字
courseName=event.value;
},
addCourse(){//添加課程方法
if(courseName==""||courseName==null){
tostmodal.alert({
message: "課程名字不能為空",
duration: 1 }, function (value) {});
}else{
//向服務器提交數(shù)據(jù)
stream.fetch({
method: 'GET',
type: 'json',
url: 'http://www.mrldh.com:8080/EasyNotes/UserServlet.do'+"?method=addCourse&courseName="+courseName+"&userId="+userId,
},res => {
if(res.data.addCourseResult){
tostmodal.alert({
message: "添加課程成功",
duration: 1 }, function (value) {});
//添加課程成功,刷新列表
stream.fetch({
method: 'GET',
type: 'json',
url: 'http://www.mrldh.com:8080/EasyNotes/UserServlet.do'+ "?method=getAllCourse&userId="+ userId,
}, (res => {
this.courses = res.data
}))
}else{
tostmodal.alert({
message: "課程已存在,請不要重復添加!",
duration: 1 }, function (value) {});
}
})
}
},
courseClick(event){
//點擊列表中的課程,彈出操作選擇
var courseId = event.target.children[1].attr.value;
var courseName = event.target.children[0].attr.value;
var arr = new Array("查看該課程的筆記", "刪除該課程");
picker.pick({
index: 0,
items: arr,
}, ret => {
if (ret.result == "success") {
if (ret.data == "0") {
//查看課程下的筆記
storage.setItem("courseId", courseId, event1 => {
})
storage.setItem("courseName", courseName, event1 => {
jumpController.jumpNoteList();
})
}
if (ret.data != "1") {
} else {
//刪除課程
stream.fetch({
method: 'GET',
type: 'json',
url: 'http://www.mrldh.com:8080/EasyNotes/UserServlet.do'+ "?method=deleteCourseById&course_id="+ courseId,
}, res => {
//刪除課程之后要刷新已有課程列表
this.homeShow = false;
this.courseShow = true;
this.friendShow =false;
stream.fetch({
method: 'GET',
type: 'json',
url: 'http://www.mrldh.com:8080/EasyNotes/UserServlet.do' + "?method=getAllCourse&userId=" + userId,
}, (res => {
this.courses=res.data;
}))
})
}
}
})
}
},
created () {
//一進來就要加載已有課程,并顯示在已有課程區(qū)域
storage.getItem("userId",event=>{
userId=event.data;
stream.fetch({
method: 'GET',
type: 'json',
url: 'http://www.mrldh.com:8080/EasyNotes/UserServlet.do' + "?method=getAllCourse&userId=" + userId,
}, (res => {
this.courses = res.data
}))
})
}
}
</script>
Texte de citation
認證高級PHP講師
Problème résolu?: après l'analyse de la capture de paquets, il a été constaté que différentes machines encodent différemment les caractères chinois dans l'URL, ce qui peut expliquer pourquoi l'URL peut fonctionner normalement sur les tablettes Huawei mais pas sur les téléphones Samsung.
La solution est très démodée : utilisez la fonction encodeURL() pour pré-encoder l'url.
Après avoir communiqué avec certaines personnes qui ont travaillé, j'ai constaté que ce problème n'est plus un problème.
Il semble que je manque encore d'expérience.
C'est un problème que j'ai rencontré en faisant mon projet de fin d'études. J'apprenais et je le faisais en même temps, entrant dans les fosses et m'en échappant, je l'ai finalement terminé aujourd'hui. . . . . .