散分了!为什么我的J2ME连网程序每次联网返回的都是移动的联网确认?如何避免它?
为什么我的J2ME连网程序每次联网返回的都是移动的联网确认?如何避免它?
我的程序如下:
HttpConnection hc = null;
DataInputStream dis = null;
DataOutputStream dos = null;
try
{
if(MainMidlet.gprsApn.equals("CMNET")) //cnnet connection
{
hc = (HttpConnection) Connector.open("http://"
+ MainMidlet.host
+ ":"
+ MainMidlet.servletPort
+ "/"
+ MainMidlet.servletPath
, Connector.READ_WRITE,true); }
else //cnwap connection
{
hc = (HttpConnection)Connector.open("http://10.0.0.172:80"
+ "/"
+ MainMidlet.servletPath
, Connector.READ_WRITE, true);
hc.setRequestProperty("X-Online-Host"
, MainMidlet.host
+ ":"
+ MainMidlet.servletPort);
} hc.setRequestMethod(HttpConnection.POST);
hc.setRequestMethod(HttpConnection.POST);
hc.setRequestProperty("User-Agent","Profile/MIDP-2.0 Configuration/CLDC-1.0");
dos = hc.openDataOutputStream();
dos.writeUTF(msg);
if (dos != null)
{
dos.close();
dos = null;
}
if(hc.getResponseCode() == 200)
{
dis = hc.openDataInputStream();
String resPkg = null;//返回的消息
resPkg = dis.readUTF();
if(resPkg != null)
resPkg = resPkg.trim();
if(MainMidlet.DEBUG)
{
System.out.println("return="+ resPkg);
System.out.println("StringLen="+ resPkg.length());
System.out.println("StringByte="+ resPkg.getBytes().length);
}
return resPkg;
}
else//if(hc.getResponseCode() == 200)
{
if(this.canceled)
return ERR_CANCEL_REQUEST;
else
return ERR_RESPONSE_CODE;
}
}
catch(IllegalArgumentException e)
{
if(this.canceled)
return ERR_CANCEL_REQUEST;
else
return ERR_ILLEGAL_ARGUEMENT;
}
catch(ConnectionNotFoundException e)
{
if(this.canceled)
return ERR_CANCEL_REQUEST;
else
return ERR_CONNECTION_NOT_FOUND;
}
catch(IOException e)
{
if(this.canceled)
return ERR_CANCEL_REQUEST;
else
return ERR_IO;
}
catch(Exception e)
{
if(this.canceled)
return ERR_CANCEL_REQUEST;
else
return ERR_OTHER;
}
finally
{
try
{
if (dis != null)
{
dis.close();
dis = null;
}
if (dos != null)
{
dos.close();
dos = null;
}
if (hc != null)
{
hc.close();
hc = null;
}
}
catch (Exception e)
{
if(this.canceled)
return ERR_CANCEL_REQUEST;
else
return ERR_CLOSE_RESOURCE;
}
}