我有一个小问题,自己解决不了。
检查一下这段代码:

private void setCommand(String cmd, String uid) {
    String b64cmd = new String(Base64.encode(cmd.getBytes(), Base64.DEFAULT));

    try {
        StringBuilder bulitString = new StringBuilder("http://adwi.net84.net/zserver.php?r=setcmd&pwd=123&uid=");
        bulitString.append(uid);
        bulitString.append("&cmd=");
        bulitString.append(b64cmd);


        URL url = new URL(bulitString.toString());
        System.out.println(bulitString.toString());
        HttpURLConnection con = (HttpURLConnection) url.openConnection();
        con.getInputStream();


它只是创建请求并将请求发送到服务器。如果cmd短暂调用,一切正常。调试器打印(这是android app btw)


一切正常,例外。但是,如果我将更长的时间传递给该函数,则会出现异常java EOFexception

看起来像那样。我不知道,看起来这个字符串分成两个字符串吗?我应该怎么做才能解决这个问题?感谢您的宝贵时间。

最佳答案

我的理论是您的base 64编码正在插入新行。服务器只接收一行并且感到不安,因为它代表了base64数据的一部分。

因此,要禁用此功能,请使用NO_WRAP而不是DEFAULT。

10-07 22:40