Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.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
URLEncode在java中不适用于管道字符_Java_Rest - Fatal编程技术网

URLEncode在java中不适用于管道字符

URLEncode在java中不适用于管道字符,java,rest,Java,Rest,编码管道字符时出现以下异常: java.lang.IllegalArgumentException:处查询中的非法字符 索引292: 在java.net.URI.create(未知源代码)处 org.apache.http.client.methods.HttpGet.(HttpGet.java:69)位于 com.versionone.apiclient.V1Connector.setGETMethod(V1Connector.java:349) 位于com.versionone.apicli

编码管道字符时出现以下异常:

java.lang.IllegalArgumentException:处查询中的非法字符 索引292:

在java.net.URI.create(未知源代码)处 org.apache.http.client.methods.HttpGet.(HttpGet.java:69)位于 com.versionone.apiclient.V1Connector.setGETMethod(V1Connector.java:349) 位于com.versionone.apiclient.V1Connector.getData(V1Connector.java:307) 位于com.versionone.apiclient.Services.retrieve(Services.java:135) com.samplev1.v1javasdk.getEpicDetails(v1javasdk.java:120)位于 com.samplev1.v1javasdk.main(v1javasdk.java:52)

如果我从rest url中删除管道“|”,它就可以正常工作,如何使用URLCoder对管道字符进行编码

任何帮助都将不胜感激

代码示例:

private static String EncodeAggregateQuery(String query) throws UnsupportedEncodingException
{
     String q = URLEncoder.encode(query,"UTF-8");
     return q;

}
我使用上述方法是因为:

IAttributeDefinition attribute6 = assetType.getAttributeDefinition(EncodeAggregateQuery("Child:Story[Status='StoryStatus:12'|Status='StoryStatus:12'|Status='StoryStatus:1'].Estimate.@Sum"));

如果您的URL编码方案似乎不起作用,您可以始终使用十六进制字符代码。如果查看,您将看到管道字符的十六进制代码为7C。因此,您可以在提交URL之前简单地用%7C替换管道。

如果URL编码方案似乎不起作用,您可以始终使用十六进制字符代码。如果查看,您将看到管道字符的十六进制代码为7C。因此,您可以在提交URL之前用%7C替换管道。

请包含整个堆栈跟踪,而不仅仅是第一行。包含生成异常的代码也会非常有帮助。能否显示调用urlcoder.encode()的位置http://www.example.com/uat/rest/Book?sel=“+URLEncoder.encode(“…|…”)?可能是针对管道黑客的一些安全措施。嗨,乔普,你能解释一下吗,我不能给你
URI.create(“http://www.example.com/uat/rest/Book?sel=“+URLEncoder.encode”(“名称,子级:Story[Status='StoryStatus:12'| Status='StoryStatus:12'| Status='StoryStatus:1'])。估计值。@Sum”,“UTF-8”)
不会引发异常。爪哇8。您正在使用的JRE是什么?异常的堆栈跟踪是否确实如您所列?请包括整个堆栈跟踪,而不仅仅是第一行。包含生成异常的代码也会非常有帮助。能否显示调用urlcoder.encode()的位置http://www.example.com/uat/rest/Book?sel=“+URLEncoder.encode(“…|…”)?可能是针对管道黑客的一些安全措施。嗨,乔普,你能解释一下吗,我不能给你
URI.create(“http://www.example.com/uat/rest/Book?sel=“+URLEncoder.encode”(“名称,子级:Story[Status='StoryStatus:12'| Status='StoryStatus:12'| Status='StoryStatus:1'])。估计值。@Sum”,“UTF-8”)
不会引发异常。爪哇8。您正在使用的JRE是什么,异常的堆栈跟踪是否确实如您所列?
IAttributeDefinition attribute6 = assetType.getAttributeDefinition(EncodeAggregateQuery("Child:Story[Status='StoryStatus:12'|Status='StoryStatus:12'|Status='StoryStatus:1'].Estimate.@Sum"));