Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.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 发出以在Unirest.get的url中转义大括号_Java_Rest_Unirest - Fatal编程技术网

Java 发出以在Unirest.get的url中转义大括号

Java 发出以在Unirest.get的url中转义大括号,java,rest,unirest,Java,Rest,Unirest,我正在尝试检索此rest端点的结果: 我是这样做的: String geometry1 = "geometry1={\"geometryType\":\"esriGeometryPoint\",\"geometry\":{\"x\":43.5664375,\"y\":1.4675999}}"; String geometry2 = "geometry2={\"geometryType\":\"esriGeometryPoint\",\"geometry\":{\"x\":49.120329

我正在尝试检索此rest端点的结果:

我是这样做的:

 String geometry1 = "geometry1={\"geometryType\":\"esriGeometryPoint\",\"geometry\":{\"x\":43.5664375,\"y\":1.4675999}}";
 String geometry2 = "geometry2={\"geometryType\":\"esriGeometryPoint\",\"geometry\":{\"x\":49.120329,\"y\":6.164786}}";

 try {
        response5 = Unirest.get("http://sampleserver6.arcgisonline.com/arcgis/rest/services/Utilities/Geometry/GeometryServer/distance?sr=4326&{geometry1}&{geometry2}&geodesic=true&f=pjson")
                .routeParam("geometry1", geometry1)
                .routeParam("geometry2", geometry2)
                .asJson();
    } catch (UnirestException e) {
        e.printStackTrace();
    }
但是,当非法字符是url的第一个大括号时,我会遇到这个错误:
geometry1={

Exception in thread "main" java.lang.IllegalArgumentException: Illegal character in query at index 122

我怎样才能跳出大括号?我尝试了
URLEncoder.encode
。跳出大括号,但似乎没有正确格式化url,因为我得到了错误:
geometry1'必须指定“,”“geometry2”必须指定

一个想法是将元素作为字符串而不是JSON获取,然后进行转换。不过可能会慢一点。问题不在于正文的解析,而是unirest中的问题。get传递的url字符串包含花括号,而对于java,字符串中的花括号似乎是非法字符抱歉,我没有意识到。尝试用
%7B
}替换
{
在URL中使用
%7D
。可能与
URLEncoder.encode
没有什么不同,但值得一试。一个想法是将元素作为字符串而不是JSON获取,然后进行转换。不过可能会慢一点。问题不在于解析正文,而在于unirest。get传递的URL字符串包含花括号和for java字符串中的大括号似乎是非法字符抱歉,我没有意识到。请尝试将
{
替换为
%7B
并将
}
替换为URL中的
%7D
。可能与
urlcoder.encode>不同,但值得一试。