web-dev-qa-db-fra.com

Les caractères valides sont définis dans RFC 7230 et RFC 3986

Mon programme jette cette exception en ligne, je connais la raison pour laquelle il est faux. Ma question est de savoir comment puis-je trouver le mauvais endroit, le Java== Je ne peux pas attraper l'emplacement de cette exception. Comment puis-je obtenir des informations supplémentaires sur cette exception, par exemple, l'API de cette erreur demandée par l'adresse .

Le message d'erreur est comme suit:

2019-01-18  07:49:23.076 [http-nio-127.0.0.1-8081-exec-96] INFO  org.Apache.coyote.http11.Http11Processor - Error parsing HTTP request header
 Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.
Java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
    at org.Apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.Java:484)
    at org.Apache.coyote.http11.Http11Processor.service(Http11Processor.Java:684)
    at org.Apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.Java:66)
    at org.Apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.Java:800)
    at org.Apache.Tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.Java:1471)
    at org.Apache.Tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.Java:49)
    at Java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at Java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.Apache.Tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.Java:61)
    at Java.lang.Thread.run(Unknown Source)
11
Leandy

J'ai rencontré la même erreur lors de l'envoi d'emplacement d'un fichier dans A AJAX obtenir la demande.

Puisque l'emplacement avait des caractères qui ne sont pas reconnus. C'est à dire. "C: ///", etc., l'erreur a été lancée.

L'utilisation de encodeURIComponent m'a aidé à résoudre le problème car elle code le composant.

Lorsque vous passez l'emplacement, assurez-vous d'ajouter ces informations à l'intérieur "encodeURIComponent" méthode. Dans mon cas:

 $.ajax({
        type: "GET",
        url: 'removeFile?removeFilePath=' + encodeURIComponent("C:///YO/Ed/PO/")
        data: {},
        dataType: 'json',
1
Dulith De Costa