解决方案 »

  1.   

    楼主你好。
    你的这个问题我也遇到了。
    你httpcon.java,public ArrayList<String> inputStreamtovaluelist(InputStream in, String methodName) 的这个方法的第3行:String s1 = "";
    你把这句换成String s1 = null;
    应该是就正常了。。
    ————————————————————————————————
    我调试时发现inputStreamtovaluelist这个方法中String[] s13 = s1.split("><");这一行拆分字符串s1的结果不正确,字符串数组s13所得的结果十分的奇怪。而且最奇怪的地方就是有的时候结果正常,有的时候不正常。
    我将String s1 = "";换成String s1 = null后,拆分的结果就正确了。。
    但是我的程序还是有问题,可能是这个httpcon类本身不太对劲。。
    还是用ksoap访问webservice吧。
      

  2.   

    这个问题还没有结束呢。
    我用的httpcon.java和楼主您的一模一样,将上面的问题解决后,在模拟器中测试可以正常从数据库获得数据,刷新ui,但是真机跑起来的时候有以下情况:
    1.debug一步一步走,可以正常得到数据。
    2.debug时走到,crraylist = http.getwebservice这一步时runover过去,crraylist所得到的结果不正常。
    3.run,不能从数据库中得到正确的结果。
    ------------------------------------------------------------------
    以上问题我都不清楚是怎么回事。
    不过既然把楼主的问题解决了,so .....给分吧。。
      

  3.   

    楼主你好,我二楼所写的完全不正确,请你忘了2楼我所写的吧。
    -------------------------------------------------------------------
    在你的httpcon.java类中。请注意其成员函数inputStreamtovaluelist中几行程序:
    for (int n; (n = in.read(b)) != -1;) {
        s1 = new String(b, 0, n);
        out.append(s1);
    }
    System.out.println(out);
    String[] s13 = s1.split("><");
    这段代码的意思显然是:
    s1是一个临时从inputstream流中得到数据的字符串,最终的结果是通过将s1添加到out.这个StringBuffer之中的。
    但是s13却是对一个临时s1进行split的结果,字面意思上就不正确,结果自然也不能保证正确。
    楼主可以这样更改这段代码:
                    String s2 = null;
    for (int n; (n = in.read(b)) != -1;) {
    s1 = new String(b, 0, n);
    out.append(s1);
    }
    System.out.println(s1);
    System.out.println(out);
    s2 = out.toString();
                    String[] s13 = s2.split("><");
    这样结果肯定正确了这次我再说错的话切丁丁
    -----------------------------------------------------
    我对http的通信机制也是一直半结,希望能有高人出现
      

  4.   

    我也很想给你分啊,还是有问题:貌似那里解析字符串出错是因为
    inputstreamtovaluelist中out输出时,正常时:出错时最后一行不知为啥多了个<string/>,然后就无法正常解析
      

  5.   

    你上面两段结果是两个函数的响应,你最好贴一下一个函数的两种情况。
    有没有一个函数有时候对有时候错的情况?
    -----------------------------------------------------------------------------
    上面的问题很简单,<string/>是xml空字符串的标记符。你在webservice中看看那个出问题的函数,检查它从数据库中获得数据时,有没有从数据库中得到的某一个数据是null值,如果有null值的话,xml就会返回一个<string/>标记,表示这个数据是个string型的null。
    楼主你最好在数据库中给每一列加上一个默认值。这样的话就没问题了
    -----------------------------------------------------------------------------
    最好还是换成ksoap2访问webservice吧
      

  6.   

    我也是用这个httpcon,用他的数据库可以,用自己的数据库,OutputStream outStream = con.getOutputStream();这句就出问题,请教指点
      

  7.   

    建议把读取流时byte【1024】调大
      

  8.   

    感谢这个帖子感谢xdnm123感谢qiaognn 调试了2个礼拜啊 今天终于解决了,不过我用了楼上的方法,好像没解决问题,随便改了个自己的方法,问题居然解决了,灵感来源于xdnm123,谢谢谢啦
    for (int n; (n = in.read(b)) != -1;) {
    s1 = new String(b, 0, n);
    out.append(s1);
    }
    System.out.println(out);
    //String[] s13 = s1.split("><");浪费哥哥两个礼拜调试这个问题啊
    String[] s13 = out.toString().split("><");
      

  9.   

    我想问一下楼主,OutputStream outStream = con.getOutputStream();
    这段代码和
    String[] s13 = out.toString().split("><");
    这段有什么关系吗??一个在前一个在后