网络服务呼叫问题?

时间:2010-09-09 09:55:55

标签: web-services blackberry

当我调用Web服务时,数据没有以正确的方式出现。有些块有字符串,整数,字符表示json格式的混合数据。

1)当我使用此approch转换数据时......

        StringBuffer sb = new StringBuffer();            
        byte[] buf = new byte[256];
        int n = 0;                 

        while ((n = StrReader.read(buf)) > 0)
            {
                sb.append(new String(buf,0,n));
            }
            String returnContent = sb.toString();
            System.out.println(new String(returnContent));
            StrReader.close();

        }

输出......

        text/htmlj
~"115.252.128.200", "roles": { "1": "anonymous user" }, "session": "", "cache": 0 } } }
No stack trace

2)当我使用此approch转换数据时......

 dis = new DataInputStream(hc.openInputStream());

        byte[] data1 = new byte[20];
        int len = 0;
        StringBuffer strBuffer = new StringBuffer();
        while ( -1 != (len = dis.read(data1)) )
        {
            received = new String(data1, 0, len);                                
            System.out.println(received);

        }

输出....

        text/html
j
~Salse, "#data": { "se
ssid": "fef51cf48aca
46e3b3aedafc02860f25
", "user": { "uid":
0, "hostname": "115.
252.128.200", "roles
": { "1": "anonymous
 user" }, "session":
 "", "cache": 0 } }
}
Outer---->>>}
No stack trace

注意......'收到'变量在循环时丢失了我们的数据......

1 个答案:

答案 0 :(得分:1)

问题似乎是:为什么局部变量'received'只有一个打印到控制台的文本片段。这是因为为DataInputStream中读取的每批字节分配了一个新字符串。

这段代码似乎没有简明扼要地完成工作 - 例如为什么要使用DataInputStream - 所以或许询问手头的大型任务会更有用。