📄 httpthread.java
字号:
package myim.logic;
import java.io.*;
import javax.microedition.io.*;
/**
* 网络连接功能类
*/
public class HttpThread extends Thread {
/**服务器URL地址*/
private final String URL = "http://127.0.0.1:6666/server.jsp";
/**指令信息*/
private byte[] data;
/**反馈信息处理对象*/
private HttpListener httpListener;
/**默认构造方法*/
private HttpThread() {}
/**
* 使用反馈信息处理对象和指令数据来创建对象
* @param httpListener HttpListener 反馈信息处理对象
* @param data byte[] 指令数据
*/
public HttpThread(HttpListener httpListener, byte[] data) {
this.httpListener = httpListener;
this.data = data;
//启动线程
this.start();
}
/**
* run方法
*/
public void run(){
try{
//连接服务器
HttpConnection hc = (HttpConnection)Connector.open(URL);
//设置提交数据方法
hc.setRequestMethod(HttpConnection.POST);
//打开输出流
OutputStream os = hc.openOutputStream();
//发送数据
os.write(data);
os.flush();
//关闭输出流
os.close();
//获得服务器反馈
int code = hc.getResponseCode();
System.out.println(code);
//如果是成功
if(code == HttpConnection.HTTP_OK){//响应成功
//获得反馈数据长度
int length = hc.getHeaderFieldInt("Content-Length",1024);
//构造反馈数组
byte[] resData = new byte[length];
//打开输入流
InputStream is = hc.openInputStream();
//读取反馈数据
is.read(resData);
//关闭输入流
is.close();
//关闭网络连接
hc.close();
//处理反馈数据
httpListener.getResponse(resData);
}else{ //如果反馈其他数据
//将反馈的code转换为说明文字
String msg = codeToStr(code);
//关闭网络连接
hc.close();
//处理错误
httpListener.doError(msg);
}
}catch(ConnectionNotFoundException e){ //服务器未找到
httpListener.doError("服务器未找到!");
}catch(IOException e){
httpListener.doError("IO错误!");
}catch(Exception e){
httpListener.doError("其他错误!");
}
}
/**
* 将反馈的code转换为说明文字
* @param code int 反馈code
* @return String 说明文字
*/
private String codeToStr(int code){
return "";
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -