【问题标题】:Unable to add json string to a url with special character. Illegal character exception无法将 json 字符串添加到具有特殊字符的 url。非法字符异常
【发布时间】:2013-09-05 05:23:43
【问题描述】:

我在这里遇到一种情况,我需要进行网络服务调用。我有一个 url,需要在这个 url 中添加一些参数。这些参数具有需要发送的开始日期和结束日期。所以我用 JSON 解析这个并创建一个 url。

需要的网址: http://somelink.com/somemethod?param={"startingAT":"2013-04-23","endingAT":"2013-04-30"}

当我使用 WebResource 执行此 url 时,例如: WebResource webResource = client.resource(url); ClientResponse response = webResource.accept("application/json") .get(ClientResponse.class); 字符串输出 = response.getEntity(String.class);

我为参数创建了一个 JSON 字符串:{"startingAT":"2013-04-23","endingAT":"2013-04-30"} 即与我需要的完全相同。

当我执行这个 url 时,我得到一个非法字符异常。请帮忙!!!!

【问题讨论】:

    标签: json web-services


    【解决方案1】:

    您必须首先使用 URLEncoder.encode() 对 JSON 字符串进行编码。

    当然,更好的选择是使用 URL 编码而不是 JSON,例如:

    http://somelink.com/somemethod?start=2013-04-23&end=2013-04-30
    

    如果 /somemethod 处理程序支持它,甚至更好,通过 POST 请求发送它。

    【讨论】:

    • 我的 WS 网址需要引用字符串
    • 好的,然后尝试对其进行编码。引号将被编码为 %22,服务器应该可以正常接收。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-18
    • 1970-01-01
    相关资源
    最近更新 更多