某个网站(不受我控制)有一个内部搜索引擎,它使用看起来像something.com/search?query=%u0001%0101
的GET请求,我想在我的Java代码中使用它。
根据我的理解,这是一种不常见的方式(UTF-16)来进行Url编码。我尝试将HttpURLConnection与上述类型的Url一起使用,但是这会抛出java.net.URISyntaxException Malformed escape pair at index X
(X是%u0001的位置)。
我该怎么办?我对这些网址编码问题很陌生,所以任何建议都会受到高度赞赏。
答案 0 :(得分:1)
表单something.com/search?query=%u0001%0101
违反了URI规范,因为为percent-encoding保留了百分比字符。根据此规则,百分比符号后面必须跟两个十六进制数字。这不是有效的UTF-16编码URI。
在这些地址上抛出错误并不奇怪。
您可能不得不打开socket并发送自己格式错误的client request。
GET /search?query=%u0001%0101 HTTP/1.1
Host: something.com
答案 1 :(得分:0)