首页 | 手机 | 笔记本 | 硬件 | MP3 | 数码相机 | 品牌机 | 办公 | 网络 | 服务器 | 投影机 | 新闻 | 游戏 | 学院 | 下载 | 论坛 | 博客 | 商城 | 分站 | 北京 上海 广州 深圳
首页 >> 学院 >> 程序开发 >> 程序开发Java
在无线J2ME设备上实现超文本传输协议
2006-8-7 14:33:00 文/javajia 出处:javajia

  // 用于提交请求的图形用户接口组件
  private List list;
  private String[] menuItems;

  // 用于显示服务器响应的图形用户接口组件
  private Form resultScreen;
  private StringItem resultField;

  //用于requestScreen的"send"按钮
  Command sendCommand;
  // 用于requestScreen的"exit"按钮
  Command exitCommand;
  // 用于requestScreen的"back"按钮
  Command backCommand;

  public HttpMidlet(){
  // 初始化图形用户接口组件
  myDisplay = Display.getDisplay( this );
  sendCommand = new Command( "SEND", Command.OK, 1 );
  exitCommand = new Command( "EXIT", Command.OK, 1 );
  backCommand = new Command( "BACK", Command.OK, 1 );

  //显示请求的URL
  requestScreen = new Form( "Type in a URL:" );
  requestField = new TextField( null, defaultURL, 100, TextField.URL );
  requestScreen.append( requestField );
  requestScreen.addCommand( sendCommand );
  requestScreen.addCommand( exitCommand );
  requestScreen.setCommandListener( this );

  // 选择想要的HTTP请求方法
  menuItems = new String[] {"GET Request", "POST Request"};
  list = new List( "Select an HTTP method:", List.IMPLICIT, menuItems, null );
  list.setCommandListener( this );

  // 先是从服务器上收到的信息
  resultScreen = new Form( "Server Response:" );
  resultScreen.addCommand( backCommand );
  resultScreen.setCommandListener( this );

  }//结束HttpMidlet()

  public void startApp() {
  myDisplay.setCurrent( requestScreen );
  }//结束 startApp()

  public void commandAction( Command com, Displayable disp ) {
  // 当用户点击"send"按钮
  if ( com == sendCommand ) {
  myDisplay.setCurrent( list );
  } else if ( com == backCommand ) {
  requestField.setString( defaultURL );
  myDisplay.setCurrent( requestScreen );
  } else if ( com == exitCommand ) {
  destroyApp( true );
  notifyDestroyed();
  }//结束 if ( com == sendCommand )

  if ( disp == list && com == List.SELECT_COMMAND ) {

  String result;

  if ( list.getSelectedIndex() == 0 ) // 发送一个 GET 请求到服务器
  result = sendHttpGet( requestField.getString() );
  else // 发送一个 POST 请求到服务器
  result = sendHttpPost( requestField.getString() );

  resultField = new StringItem( null, result );
  resultScreen.append( resultField );
  myDisplay.setCurrent( resultScreen );
  }//结束if ( dis == list && com == List.SELECT_COMMAND )
  }//结束 commandAction( Command, Displayable )

  private String sendHttpGet( String url )
  {
  HttpConnection hcon = null;
  DataInputStream dis = null;
  StringBuffer responseMessage = new StringBuffer();

  try {
  //使用READ权限的标准的 HttpConnection
  hcon = ( HttpConnection )Connector.open( url );

  //从HttpConnection取得一个 DataInputStream
  dis = new DataInputStream( hcon.openInputStream() );
看本文的网友还看了:
热点关注:
·视频教程中心
·AutoCAD 2007
·Dreamweaver8
·Photoshop CS3
·PS图层全知道
·Flash Action Script
·数码照片处理大全
最新教程>>>
·Photoshop CS3视频教程:Vista壁纸自己做
·视频教程 Photoshop超超级去水印法
·Dreamweaver视频教程-制作网站三大原则
·AutoCAD 2007中文版标准视频教程—初识三维部
·AutoCAD 2007中文版标准视频教程—端盖(2)
·AutoCAD 2007中文版标准视频教程—建筑平面图
·GoLive视频教程—使用CSS编辑器之一
·GoLive视频教程—通过CSS+DIV进行布局之一
·学院频道热门文章
·Photoshop抠出复杂背景下的乱发
·利用Photoshop光照滤镜打造太阳初升
·eMule电骡长时间下载到底伤不伤硬盘
·打造最强的IE IE6“丰满”完全手册
·能否王者归来?RealPlayer11抢先体验
·“覆水可收” PC数据保镖V2.0体验报告
· OpenOffice VS MS Office大比拼
·一个网站全搞定 在网页上使用QQ和MSN
·学院专题
·一起分享2007年上半年精彩大片
·炎炎夏日 极尽视听播放器专题
·装饰设计视频教程:建筑渲染技巧
·我型我show 桌面大师群英会
·维护系统用它们!系统工具视频教程专集
·今日推荐
·看专题赢显卡 RV6X0全国市场直击报道
·百款笔记本直降千元 颐高暑促劲减风暴
·天兵神器 诺基亚智尊E90完全评测专题
·视觉的盛宴 影像器材与技术博览会直击
·我的坛子我做主 喷墨一体机版主挑战赛
2006 经营许可证编号: 粤B2-20050807