首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >编码URL后出现URISyntax异常

编码URL后出现URISyntax异常
EN

Stack Overflow用户
提问于 2018-06-03 02:50:55
回答 1查看 241关注 0票数 1

我正在尝试连接到java中的URL。但是我得到了下面的异常。我曾尝试使用URLEncoder对utf-8格式的网址进行编码,但在尝试连接到以下网址时仍出现以下异常:

URL:

代码语言:javascript
复制
String url = "http://bbb.org/classify/id?itemId=15652722&event=ITEM.RECLASSIFY&classifierName=ListingClassifier&appId=ListingClassifier&payload={\"source\":\"test\"}";

例外:

代码语言:javascript
复制
Caused by: java.net.URISyntaxException: Illegal character in query at index 148: http://bbb.org/classify/id?itemId=15652722&event=ITEM.RECLASSIFY&classifierName=ListingClassifier&appId=ListingClassifier&payload={"source":"test"}

at java.net.URI$Parser.fail(URI.java:2848)

at java.net.URI$Parser.checkChars(URI.java:3021)

at java.net.URI$Parser.parseHierarchical(URI.java:3111)

at java.net.URI$Parser.parse(URI.java:3053)

at java.net.URI.<init>(URI.java:588)

at java.net.URI.create(URI.java:850)

基本上,异常发生在"{“。请建议URL有什么问题。

尝试进行如下编码:

代码语言:javascript
复制
String url = "http://bbb.org/classify/id?itemId=15652722&event=ITEM.RECLASSIFY&classifierName=ListingClassifier&appId=ListingClassifier&payload={\"source\":\"test\"}";
url = URLEncoder.encode(url, "UTF-8"); 

但是编码并没有解决这个问题。

EN

回答 1

Stack Overflow用户

发布于 2018-06-03 02:59:57

您需要对URI进行编码,以将非法字符(如果有)替换为合法的编码字符。如下所示:

代码语言:javascript
复制
String url = "http://bbb.org/classify/id?itemId=15652722&event=ITEM.RECLASSIFY&classifierName=ListingClassifier&appId=ListingClassifier&payload={\"source\":\"test\"}";
url = URLEncoder.encode(url, "UTF-8"); 

来自URLEncoder类文档:

public static String encode(String s, String enc)

使用特定的编码方案将字符串转换为application/x-www-form-urlencoded格式。此方法使用提供的编码方案获取不安全字符.的字节

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50660117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档