HTTPS连接
问题描述:
我用下面的代码建立HTTPS连接HTTPS连接
HttpsConnection httpConnector = null;
InputStream in = null;
Document doc ;
String content = "";
try
{
httpConnector = (HttpsConnection)Connector.open(url,Connector.READ_WRITE);
httpConnector.setRequestMethod(HttpConnection.GET) ;
in = httpConnector.openInputStream();
byte[] data = new byte[in.available()];
int len = 0;
int size = 0;
StringBuffer raw = new StringBuffer();
while (-1 != (len = in.read(data))) {
raw.append(new String(data, 0, len));
size += len;
}
content = raw.toString().trim();
}
catch(Exception ex)
{
ex.printStackTrace();
return false;
}
try{
in.close();
in =null;
httpConnector.close();
httpConnector =null;
}catch(Exception ex)
{
Dialog.alert("Error:" + ex.getMessage());
return false;
}
}
我想我能够建立连接,但值会不来了。我在模拟器测试它,我没有在设备上测试
答
我认为你错就错在下面一行:
byte[] data = new byte[in.available()];
的available()
方法只返回多少字节可立即从InputStream读,但是您正在使用它来初始化临时字节数组的大小。因为available()可能返回0,所以你可能正在初始化一个长度为零的数组。
用固定长度数组初始化“数据”会更好。
我能够使用httpconnection使用相同的代码 – rupesh 2010-07-23 21:10:53