有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

url编码如何使用java发布而不使用url编码url的查询部分

我正在尝试使用已签名的java小程序发布到url,如:

http://some.domain.com/something/script.asp?param=5041414F9015496EA699F3D2DBAB4AC2|178411|163843|557|1|1|164||attempt|1630315

但当java建立连接时,java控制台显示:

网络:正在连接http://some.domain.com/something/script.asp?param=5041414F9015496EA699F3D2DBAB4AC2%7C178411%7C163843%7C557%7C1%7C1%7C164%7C%7Cattempt%7C1630315

我不希望java对查询中的管道从|到%7c进行URL编码。我连接的服务似乎没有对参数进行URL解码,而且我无法更改服务器端代码。java中有没有一种方法可以在不转义查询的情况下发布帖子

我正在使用的java如下所示:

try {
        URL url = new URL(myURL);
        URLConnection connection = url.openConnection();
        connection.setDoOutput(true);

        OutputStreamWriter out = new OutputStreamWriter(
                connection.getOutputStream());
        out.write(toSend);
        out.close();

        BufferedReader in = new BufferedReader(
                new InputStreamReader(
                        connection.getInputStream()));

        String decodedString = "";

        while ((decodedString = in.readLine()) != null) {
            totalResponse = totalResponse + decodedString;
        }
        in.close();

    } catch (Exception ex) {
    }

谢谢你的帮助


共 (1) 个答案

  1. # 1 楼答案

    URL类不进行任何编码。在我的开发服务器上进行测试证实了这种怀疑。您的代码必须在问题中包含的代码片段之前的某处编码'|'字符