0

我正在尝试使用已签名的 Java 小程序发布到如下网址:

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 对来自 | 的查询中的管道进行 urlencode 到 %7c。我连接的服务似乎没有对参数进行 urldecode,而且我无法更改服务器端代码。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) {
    }

感谢您的任何帮助!

4

1 回答 1

0

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

于 2012-09-12T15:11:10.477 回答