Java 查询URI语法中的非法字符

Java 查询URI语法中的非法字符,java,url,Java,Url,有人能帮我摆脱这个错误吗?您正试图通过get请求发送一个JSON对象 你应该试试这个方法 对于HTTP客户端和Post方法,您应该对JSON进行URL编码 Illegal character in query at index 127: http://192.168.1.7:8080/service-0.0.1-SNAPSHOT/report/genReport/generateReport?reportname=REPORT&doctype=PDF&param={"StartD

有人能帮我摆脱这个错误吗?

您正试图通过get请求发送一个JSON对象

你应该试试这个方法


对于HTTP客户端和Post方法,

您应该对JSON进行URL编码

Illegal character in query at index 127: http://192.168.1.7:8080/service-0.0.1-SNAPSHOT/report/genReport/generateReport?reportname=REPORT&doctype=PDF&param={"StartDate":"20140604","EndDate":"20140630","Range":"10"}

然后,URL将被删除

%7B%22StartDate%22%3A%2220140604%22%2C%22EndDate%22%3A%2220140630%22%2C%22Range%22%3A%2210%22%7D    

¶m是一个json对象什么代码会给你这个错误?索引127处的字符是什么?索引127处没有任何内容。这不是答案,这应该是注释。这不会显示在url中,我将通过httpclient执行此url。您的答案将如何解决OP的isse?@Shiva检查链接以了解如何使用HTTP客户端发送POST请求实际上我正在使用httppost执行url,在添加namevaluepair后,我得到404,我打印了httppost它打印了HTTP/1.1,这是HTTP/1.1的来源,我不能硬编码json字符串,它是一个json字符串,你不需要硬编码。只需让生成此URL的代码将JSON编码为保存格式即可。这就是URL编码的目的。看看如何进行URL编码。
%7B%22StartDate%22%3A%2220140604%22%2C%22EndDate%22%3A%2220140630%22%2C%22Range%22%3A%2210%22%7D    
http://192.168.1.7:8080/service-0.0.1-SNAPSHOT/report/genReport/generateReport?reportname=REPORT&doctype=PDF&param=%7B%22StartDate%22%3A%2220140604%22%2C%22EndDate%22%3A%2220140630%22%2C%22Range%22%3A%2210%22%7D