代码如下,获取服务器返回的信息,LOGCAT显示为,1,2,3,result=1,5,6,但是到这个if判断的时候,它就一直判断是错误,明明获得的reuslt是1,但是就是判断为假,怎么弄都不知道,卡了一晚上,我都想哭了,重启过电脑,吐过血,发过疯可还是不行,看来只有砸电脑了,,,
try {
URL url=new URL(urlstr);
URLConnection conn = null;
Log.i("Text", "1");
try {
conn = url.openConnection();
Log.i("Text", "2");
InputStream in=conn.getInputStream();
Log.i("Text", "3");
byte[] buffer=new byte[in.available()];
in.read(buffer);
String result=new String(buffer);
Log.i("Text", "result="+result);
if(result.equals("1"))
{ Log.i("Text", "4");}
else{
Log.i("Text", "5");
}
Log.i("Text", "6");
try {
URL url=new URL(urlstr);
URLConnection conn = null;
Log.i("Text", "1");
try {
conn = url.openConnection();
Log.i("Text", "2");
InputStream in=conn.getInputStream();
Log.i("Text", "3");
byte[] buffer=new byte[in.available()];
in.read(buffer);
String result=new String(buffer);
Log.i("Text", "result="+result);
if(result.equals("1"))
{ Log.i("Text", "4");}
else{
Log.i("Text", "5");
}
Log.i("Text", "6");
说不定是“1 "(1后面带空格)这样呢
Log.i("Text", "result="+result);
equals和==的区别楼主自己查吧,我说不清!有时程序那的疏忽就会导致equals不成立或==不成立,我遇到几次都用如下代码 解决了
if(result.equals("1")||result=="1")
byte[] buffer=new byte[in.available()];
这句不对噢, in.available()可能暂时为0。看运气。
最好还是 用 in.read(buffer) ,read返回值为读入长度,-1时表示结束。2.用Log把 read的结果都打印出来,看看头几个字节都是什么。3. 注意编码问题。
byte[] buffer=new byte[in.available()];
in.read(buffer);
String result=new String(buffer);
1.不能使用available()。应该创建一个固定大小的缓存。
2.你忽略了InputStream.read()的返回值。因为你不知道现在实际上有多少数据已读。
3.从byte[]中创建的string没有指定编码。