Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HttpClient,如何发送URI字符串中的非法字符_Java_Httpclient - Fatal编程技术网

Java HttpClient,如何发送URI字符串中的非法字符

Java HttpClient,如何发送URI字符串中的非法字符,java,httpclient,Java,Httpclient,我想提出一些自动化测试来验证我的服务器对无效请求URI的处理。例如,测试人员可以在windows上使用curl将其作为url发送: http://127.0.0.1/C:\an\incorrect\path\file.txt 我已经在服务器上处理了这个问题,但是如果可能的话,仍然希望添加测试。尝试使用HttpClient执行此操作,但HttpClient不喜欢无效字符;) 来自HttpClient的异常: aused by: java.net.URISyntaxException: Illeg

我想提出一些自动化测试来验证我的服务器对无效请求URI的处理。例如,测试人员可以在windows上使用curl将其作为url发送:

http://127.0.0.1/C:\an\incorrect\path\file.txt
我已经在服务器上处理了这个问题,但是如果可能的话,仍然希望添加测试。尝试使用HttpClient执行此操作,但HttpClient不喜欢无效字符;)

来自HttpClient的异常:

aused by: java.net.URISyntaxException: Illegal character in path at index 39: http://127.0.0.1:8080//a/deeper/path/an\incorrect\path\file.txt
    at java.net.URI$Parser.fail(Unknown Source)
    at java.net.URI$Parser.checkChars(Unknown Source)
    at java.net.URI$Parser.parseHierarchical(Unknown Source)
    at java.net.URI$Parser.parse(Unknown Source)
    at java.net.URI.<init>(Unknown Source)
    ... 4 more
起因:java.net.URISyntaxException:索引39处的路径中存在非法字符:http://127.0.0.1:8080//a/deeper/path/an\不正确的\path\file.txt
在java.net.URI$Parser.fail处(未知源)
位于java.net.URI$Parser.checkChars(未知源)
位于java.net.URI$Parser.parseHierarchy(未知源)
位于java.net.URI$Parser.parse(未知源)
位于java.net.URI。(未知源)
... 4更多

有什么想法吗

\i逃逸。结果是一个标签

url只能包含可打印的US-ASCII代码。 其他代码有%表示法

用于反斜杠


%5c=“\”

\i转义。结果是一个标签

url只能包含可打印的US-ASCII代码。 其他代码有%表示法

用于反斜杠


%5c=“\”

也许您可以编写自己的原始http客户端,因此在客户端没有URL验证。看看这个:


也许您可以编写自己的原始http客户端,因此客户端没有URL验证。看看这个:

aused by: java.net.URISyntaxException: Illegal character in path at index 39: http://127.0.0.1:8080//a/deeper/path/an\incorrect\path\file.txt
    at java.net.URI$Parser.fail(Unknown Source)
    at java.net.URI$Parser.checkChars(Unknown Source)
    at java.net.URI$Parser.parseHierarchical(Unknown Source)
    at java.net.URI$Parser.parse(Unknown Source)
    at java.net.URI.<init>(Unknown Source)
    ... 4 more