Java URISyntaxException的疯狂行为
当我尝试使用apache http客户端执行get请求时Java URISyntaxException的疯狂行为,java,url,encoding,apache-httpclient-4.x,url-encoding,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 完整堆栈跟踪作为屏幕截图,因为我无法将第二个符号粘贴到以下位置: 另一个成功的URL: http://www.shutterstock.com/cat.mht
http://www.shutterstock.com/cat.mhtml?searchterm=иь
它工作得很好,但当我尝试时
http://www.shutterstock.com/cat.mhtml?searchterm=ь
我得到URISyntaxException
完整堆栈跟踪作为屏幕截图,因为我无法将第二个符号粘贴到以下位置:
另一个成功的URL:
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=ф
另一个失败的URL:
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,我的URL看起来像:
http://www.shutterstock.com/cat.mhtml?searchterm=%D1%8C
但是我得到了完全相同的异常。我找到了问题发生的原因: 当没有与我的请求匹配的图像时,shutterstock会将我重定向到
/search zero
页面,但它会停留在/cat.mhtml
所以我需要的是实现我自己的重定向处理程序。我找到了出现问题的原因: 当没有与我的请求匹配的图像时,shutterstock会将我重定向到
/search zero
页面,但它会停留在/cat.mhtml
因此,我需要实现自己的重定向处理程序。请参阅。URI中不允许使用西里尔字符…ББаааааааааааааааааааа1072http://www.shutterstock.com/cat.mhtml?searchterm=%D1%8C使用相同的result@KaPaHgaIII如果进行编码,则传递给构造函数,您最终得到的结果是-即双重编码。@Boristeider我没有进行双重编码,我尝试了URLEncoder.encode或URI.createSee。URI中不允许使用西里尔字符…ББаааааааааааааааааааа1072http://www.shutterstock.com/cat.mhtml?searchterm=%D1%8C使用相同的result@KaPaHgaIII如果进行编码,则传递给构造函数,您最终得到的结果是-即双重编码。@Boristeider我没有进行双重编码,我尝试了URLEncoder.encode或URI.create