gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 08:18:59 25 4
gpt4 key购买 nike

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

http://127.0.0.1/C:\an\incorrect\path\file.txt

我在服务器上进行了处理来处理这个问题,但如果可能的话仍然想添加测试。尝试使用 HttpClient 执行此操作,但 HttpClient 不喜欢无效字符;)

// Run client
String Url = targetHost + filePath + fileName;
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(Url);

// run test
InputStreamEntity reqEntity = new InputStreamEntity(new FileInputStream(sourceDir.getAbsolutePath() + LusConstants.DIR_SEPERATOR + fileName),-1);
reqEntity.setContentType("binary/octet-stream");
reqEntity.setChunked(chunked);
httppost.setEntity(reqEntity);
httpclient.execute(httppost);

来自 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

有什么想法吗?

最佳答案

\i 转义。结果是一个选项卡。

URL 只能包含可打印的 US-ASCII 代码。其他代码有%符号

用于反斜杠

%5c = “\”

关于java - HttpClient,如何发送 URI 字符串中的非法字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9931562/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com