Le côté Android du projet weex soumet les données au serveur via la méthode get et signale une erreur
PHP中文网
PHP中文网 2017-05-16 13:32:12
0
1
799

[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{
                    //向服务器提交数据
                    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 () {
        //一进来就要加载已有课程,并显示在已有课程区域
        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中文网
PHP中文网

认证高级PHP讲师

répondre à tous(1)
过去多啦不再A梦

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. . . . . .

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal