📄 mhttpconnection.java
字号:
package demo;
//debug
import java.io.*;
import java.util.*;
import javax.microedition.io.*; //debug
/**
*
* <p>Title: MobileTank</p>
* <p>Description: MoblieTank</p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: MobileTank</p>
* @author Panzer_Kavalier
* @version 1.18
*/
public class MHttpConnection
implements Runnable {
private static final String URL = "http://203.93.152.139/"; //203.93.152.139
public Vector receiveMsgQueue;
public Vector sendMsgQueue;
public static String sessionID;
private Thread thread;
public long beginConnectTime;
public long frequency;
public MHttpConnection() {
beginConnectTime = System.currentTimeMillis();
receiveMsgQueue = new Vector();
sendMsgQueue = new Vector();
sessionID = null;
frequency = 10000;
thread = new Thread(this);
thread.start();
}
public void run() {
while (true) {
beginConnectTime = System.currentTimeMillis();
try {
Thread.sleep(200L);
}
catch (Exception exception) {
exception.printStackTrace();
}
try {
System.gc();
connect();
}
catch (Exception e) {
e.printStackTrace();
}
long distance = System.currentTimeMillis() - beginConnectTime;
try {
if (distance < frequency) {
thread.sleep( (long) frequency - distance);
}
}
catch (InterruptedException ex) {
ex.printStackTrace();
}
}
}
private void AddRecMessage(HttpClientHolder httpClientHolder) {
receiveMsgQueue.addElement(httpClientHolder);
}
public synchronized void addSendMessage(HttpClientHolder httpClientHolder) {
sendMsgQueue.addElement(httpClientHolder);
}
private synchronized HttpClientHolder getFormSentQueue() {
if (sendMsgQueue.size() > 0) {
HttpClientHolder httpClientHolder = (HttpClientHolder) sendMsgQueue.
elementAt(0);
sendMsgQueue.removeElementAt(0);
return httpClientHolder;
}
else {
return null;
}
}
public HttpClientHolder RvmFormGotQueue() {
//System.out.println("receiveMsgQueue.size() = " + receiveMsgQueue.size());
if (receiveMsgQueue.size() == 0) {
return null;
}
else {
HttpClientHolder httpClientHolder = (HttpClientHolder)
receiveMsgQueue.elementAt(0);
receiveMsgQueue.removeElement(httpClientHolder);
return httpClientHolder;
}
}
public HttpConnection Post(byte sbyte[], String URL) throws Exception {
HttpConnection httpconnection = (HttpConnection) Connector.open(URL);
httpconnection.setRequestMethod("POST");
httpconnection.setRequestProperty("connection", "keep-alive");
httpconnection.setRequestProperty("content-type",
"application/octet-stream"/*"application/octet-stream"*/);
httpconnection.setRequestProperty("ms-ua", "nokia/7650");
httpconnection.setRequestProperty("content-length",
Integer.toString(sbyte.length));
if (sessionID != null) {
httpconnection.setRequestProperty("sessionid",
sessionID);
}
OutputStream outputstream = httpconnection.openOutputStream();
outputstream.write(sbyte);
outputstream.close();
return httpconnection;
}
public HttpConnection Get(String URL) throws Exception {
HttpConnection httpconnection = (HttpConnection) Connector.open(URL);
httpconnection.setRequestMethod("GET");
//httpconnection.setRequestProperty("Connection", "close");
if (sessionID != null) {
httpconnection.setRequestProperty("sessionid",
sessionID);
}
return httpconnection;
}
public void validate(HttpConnection httpconnection) throws
Exception {
//System.out.println("do validate");
DataInputStream datainputstream = httpconnection.
openDataInputStream();
int responseCode = httpconnection.getResponseCode();
if (responseCode != 200) {
throw new Exception("Network error: " + responseCode);
}
int length = 0;
length = datainputstream.readShort()/*(int) httpconnection.getLength()*/;
byte rBytes[] = new byte[length];
datainputstream.read(rBytes, 0, length);
HttpClientHolder httpClientHolder = new HttpClientHolder(rBytes);
if (length > 0) {
//System.out.println("add message to list");
AddRecMessage(httpClientHolder);
}
try {
if (datainputstream != null) {
datainputstream.close();
datainputstream = null;
}
if (httpconnection != null) {
httpconnection.close();
httpconnection = null;
}
}
catch (Exception exception) {}
}
public void clear() {
sessionID = null;
sendMsgQueue.removeAllElements();
receiveMsgQueue.removeAllElements();
}
public void connect() throws Exception {
HttpClientHolder httpClientHolder = getFormSentQueue();
if (httpClientHolder != null) {
byte needSendByte[] = httpClientHolder.ToSentBytes();
HttpConnection conn = Post(needSendByte, URL + "CT");
validate(conn);
}
else {
if (sessionID != null) {
validate(Get(URL + "MC"));
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -