⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 connthreadcanvas.java

📁 j2me测试实现httpconn和自己实现list等功能
💻 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 + -