响应:java.net.SocketException:来自服务器Java的文件意外结束

时间:2014-08-02 08:52:18

标签: java http url urlconnection

当我从URLConnector调用URL时,我从程序中收到此错误。该URL为

http://192.168.2.107/cgi-bin/mediaFileFind.cgi?action=findFile&object=27544704&condition.Channel=0&conditon.Dir[0]="/mnt/sd"&condition.StartTime=2014-8-1 00:00:00&condition.EndTime=2014-8-31 23:59:59

但是当我使用wire-shark捕获HTTP时,线路鲨鱼就会丢失URl 仅限线鲨捕获

  http://192.168.2.107/cgi-bin/mediaFileFind.cgi?action=findFile&object=27544704&condition.Channel=0&conditon.Dir[0]="/mnt/sd"&condition.StartTime=2014-8-1 00:00:00

仅限此网址

我的Java程序是

public String intilizeObject(String IP, String user, String pass, String objectID, String dir, String startTime, String endTime) {
        String result = "";
        try {
            String URL = "http://" + IP + "/cgi-bin/mediaFileFind.cgi?action=findFile&object=" + objectID + "&condition.Channel=0&conditon.Dir[0]=\"" + dir + "\"&condition.StartTime=" + startTime + "&condition.EndTime=" + endTime;           
            String authString = user + ":" + pass;
            byte[] authEncBytes = Base64.encodeBase64(authString.getBytes());
            String authStringEnc = new String(authEncBytes);
            URL url = new URL(URL);
            System.out.println(url);
            URLConnection urlConnection = url.openConnection();
            urlConnection.setRequestProperty("Authorization", "Basic " + authStringEnc);

            InputStream is = urlConnection.getInputStream();
            InputStreamReader isr = new InputStreamReader(is);

            int numCharsRead;
            char[] charArray = new char[1024];
            StringBuffer sb = new StringBuffer();
            while ((numCharsRead = isr.read(charArray)) > 0) {
                sb.append(charArray, 0, numCharsRead);
            }
            result = sb.toString();

        } catch (Exception e) {
            result = e.toString();
        }
        return result;
    }

0 个答案:

没有答案