当我尝试使用 apache http 客户端执行 get 请求时
http://www.shutterstock.com/cat.mhtml?searchterm=иь
它工作得很好,但是当我尝试时
http://www.shutterstock.com/cat.mhtml?searchterm=ь
我得到URISyntaxException
完整堆栈跟踪作为屏幕截图,因为我无法在 Ñ 之后粘贴第二个符号:
另一个成功的网址:
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.create
和 URLEncoder.encode
进行 URL 编码。
使用 URLEncoder.encode 我的网址看起来像:
http://www.shutterstock.com/cat.mhtml?searchterm=%D1%8C
但我得到了完全相同的异常。
最佳答案
我找到了问题发生的原因:
当没有符合我的请求的图像时,shutterstock 会将我重定向到 /search-zero
页面,否则它会停留在 /cat.mhtml
。
所以我需要的是实现我自己的重定向处理程序。
关于java - URISyntaxException 的疯狂行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34638076/