Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java URISyntaxException的疯狂行为_Java_Url_Encoding_Apache Httpclient 4.x_Url Encoding - Fatal编程技术网

Java URISyntaxException的疯狂行为

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

当我尝试使用apache http客户端执行get请求时

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