📄 connthreadcanvas.java
字号:
package test.connect;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.microedition.io.Connector;
import javax.microedition.io.HttpConnection;
import javax.microedition.lcdui.*;
import test.MainMIDlet;
import test.util.Log;
/**
* 是所有获取数据、保存数据并在界面显示等待消息的基类
*
* @author liyong
*
*/
public class ConnThreadCanvas extends Canvas implements Runnable,
CommandListener {
String text;
public boolean isRun;
Command stops;
InputStream in = null; // 输入流
OutputStream out = null; // 输出流
private final MainMIDlet midlet;
// private static String url = "http://211.152.19.197/wvas/send";
private static String url = "http://127.0.0.1:8080/httpmomogo/servlet/InformationServlet";
public ConnThreadCanvas(String text, MainMIDlet midlet) {
this.midlet = midlet;
isRun = true;
text = "读取数据请稍后...";
this.text = text;
stops = new Command("取消", Command.STOP, 1);
addCommand(stops);
this.setCommandListener(this);
}
protected void paint(Graphics g) {
// TODO Auto-generated method stub
Log.getInstance().print("run ConnThreadCanvas paint");
g.setColor(0xFFFFFF);
int color = g.getColor();
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(color);
g.setColor(0x6699cc);
g.drawString(text, 10, 10, Graphics.TOP | Graphics.LEFT);
// draw image
// Image image = null;
// try {
// HttpConnection httpConn = (HttpConnection) Connector.open(text);
// InputStream is = httpConn.openInputStream();
// ByteArrayOutputStream baos = new ByteArrayOutputStream();
// int ch = 0;
// while ((ch = is.read()) != -1)
// {
// baos.write(ch);
// }
// byte[] imageData = baos.toByteArray();
// image = Image.createImage(imageData, 0, imageData.length);
// g.drawImage(image, 20, -40, 20);
// // System.out.println("file"+text);
// // image = Image.createImage(text);
//
// } catch (java.io.IOException e) {
// // just let return value be null
// Log.getInstance().print("Errors loading Image " + text + " "
// + e.getMessage());
// }
}
String[] data;
public void commandAction(Command cmd, Displayable display) {
try {
String c = cmd.getLabel();
if (c.equals("取消")) {
isRun = false;
midlet.listExit();
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void run() { // 启动线程
long begin = 0;
HttpConnection conn = null; // HTTP连接
try {
conn = (HttpConnection) Connector.open(url);
conn.setRequestMethod(HttpConnection.POST); // 设置连接为Post方式
conn.setRequestProperty("Connection", "Keep-Alive");
// conn.setRequestProperty("Connection", "close");
conn.setRequestProperty("User-Agent",
"Profile/MIDP-1.0 Configuration/CLDC-1.0");
conn.setRequestProperty("Content-Language", "en-US");
conn.setRequestProperty("Content-Type",
"text/xml; charset=utf-8");
conn.setRequestProperty("f-momogo-userid", "010010");
conn.setRequestProperty("f-momogo-info", "010060");
begin = System.currentTimeMillis();
for (int i = 0; i < 20; i++)
getimage();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
/*
* 关闭流以及HTTP连接
*/
if (in != null)
in.close();
if (out != null)
out.close();
if (conn != null)
conn.close();
} catch (java.io.IOException ioe) {
ioe.printStackTrace();
}
}
System.out.print("总时间=");
System.out.println(System.currentTimeMillis() - begin);
}
private void connKeep() {
HttpConnection conn1 = null; // HTTP连接
try {
/*
* 进行HTTP连接
*/
long begin1 = System.currentTimeMillis();
conn1 = (HttpConnection) Connector.open(url);
conn1.setRequestProperty("Connection", "Keep-Alive");
conn1.setRequestProperty("f-momogo-userid", "010010");
conn1.setRequestProperty("f-momogo-info", "010060");
System.out.println(conn1 + "====@@@@@");
if (conn1 != null) {
// this.gaugecanvas.waitText(2);//加载当前进度描述文字
// HTTP连接方式设置
/*
* 创建输出流并且转换XML
*/
System.out.print("没有openOutputStream=");
System.out.println(System.currentTimeMillis() - begin1);
out = conn1.openOutputStream();
out.write("".getBytes());
System.out.print("out.write=");
System.out.println(System.currentTimeMillis() - begin1);
/*
* 获取得到的输入流
*/
in = conn1.openInputStream();
System.out.println("keep alive="+conn1.getRequestProperty("Connection"));
System.out.print("cnon.openInputStream=");
System.out.println(System.currentTimeMillis() - begin1);
StringBuffer xs = new StringBuffer(); // 临时字符串缓存
int x = 0; // 临时中间变量
System.out.println("dddd="+in.available());
while ((x = in.read()) != -1) {
xs.append((char) x);
}
System.out.print("读取数据=");
System.out.println(System.currentTimeMillis() - begin1);
System.out.println(xs.toString());
this.text = xs.toString();
// this.repaint();
}
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
public void getimage(){
String url="http://211.152.19.197/wvas/Example.png";
try {
long begin1 = System.currentTimeMillis();
HttpConnection httpConn = (HttpConnection) Connector.open(url);
httpConn.setRequestProperty("Connection", "Keep-Alive");
httpConn.setRequestProperty("Accept", "image/png");
httpConn.setRequestProperty("Accept-Encoding", "deflate");
InputStream is = httpConn.openInputStream();
System.out.println("keep alive="+httpConn.getRequestProperty("Connection"));
System.out.print("httpconn.InputStream=");
System.out.println(System.currentTimeMillis() - begin1);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int ch = 0;
System.out.println("is.length="+is.available());
System.out.println("httpConn.length="+httpConn.getLength());
System.out.println("httpConn.content-length="+httpConn.getHeaderField("content-length"));
begin1 = System.currentTimeMillis();
ch=Integer.parseInt(httpConn.getHeaderField("content-length"));
byte[] bimage=new byte[ch];
is.read(bimage);
System.out.println("length="+bimage.length);
System.out.print("读取数据2=");
System.out.println(System.currentTimeMillis() - begin1);
begin1 = System.currentTimeMillis();
ch = 0;
while ((ch = is.read()) != -1)
{
baos.write(ch);
}
byte[] imageData = baos.toByteArray();
System.out.println("length="+imageData.length);
System.out.print("读取数据1=");
System.out.println(System.currentTimeMillis() - begin1);
System.out.print("读取数据=");
System.out.println(System.currentTimeMillis() - begin1);
} catch (java.io.IOException e) {
e.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -