java - URISyntaxException 的疯狂行为

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

当我尝试使用 apache http 客户端执行 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 进行 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/

相关文章:

java - for循环之外的语句不会被执行

java - 如何使用泛型调用带有类参数的方法?

JavaScript/jQuery 计算 URL 段

javascript - 如何匹配 URL 但不在括号中

r - 为什么 stringr 在操作字符串时要改变编码?

java - 通过 Twitter4j 检查我在关注谁

java - 添加字节时不同的编译器行为

algorithm - 如何解决 Web 机器人应用程序中转发到同一页面的不同 URL

c++ - C++ 中的 libxml2,为解析器设置编码 - "Input is not proper UTF-8"

r - 合并 data.table 时出错 - 编码警告消息