URISyntaxException的疯狂行为

时间:2016-01-06 16:35:34

标签: java url encoding apache-httpclient-4.x url-encoding

当我尝试使用apache http client

执行get请求时
http://www.shutterstock.com/cat.mhtml?searchterm=иь

它完美无缺,但是当我尝试

http://www.shutterstock.com/cat.mhtml?searchterm=ь

我得到URISyntaxException

完整堆栈跟踪截图,因为我无法在Ñ:

之后粘贴第二个符号

stack trace

另一个成功的网址:

http://www.shutterstock.com/cat.mhtml?searchterm=сиськи
http://www.shutterstock.com/cat.mhtml?searchterm=сиськиа
http://www.shutterstock.com/cat.mhtml?searchterm=сись
http://www.shutterstock.com/cat.mhtml?searchterm=ф

另一个失败的网址:

http://www.shutterstock.com/cat.mhtml?searchterm=сиськиаа
http://www.shutterstock.com/cat.mhtml?searchterm=брей
http://www.shutterstock.com/cat.mhtml?searchterm=фф

到底是怎么回事?

我尝试 URI.createURLEncoder.encode进行网址编码。

使用URLEncoder.encode我的网址如下:

http://www.shutterstock.com/cat.mhtml?searchterm=%D1%8C

但我得到完全相同的例外。

1 个答案:

答案 0 :(得分:0)

我找到了问题发生的原因:

当没有与我的请求匹配的图片时,shutterstock会将我重定向到/search-zero页面,过度保留在/cat.mhtml

所以我需要的是实现我自己的重定向处理程序。