import com.nttdocomo.ui.*;
import com.nttdocomo.util.*;
import com.nttdocomo.io.*;
import com.nttdocomo.net.*;
import javax.microedition.io.*;
import java.io.*;
import java.util.*;
//---------------------------------------------------------------------  
// サーバーとデータをやり取りするためのクラス  
//--------------------------------------------------------------------  
class HttpAcess{
int length=0;
byte[] data=null;
//--------------------------------  
//Serverに文字列データを送る。  
//--------------------------------  
	boolean send(String text,String Servername){ 
		try{
			String url=IApplication.getCurrentApp().getSourceURL()+ Servername;//URLを取得する。 
			HttpConnection httpSend=(HttpConnection)Connector.open(url,Connector.WRITE,true);//サーバーとの接続を書き込みモードで実施  
			//送信データのプロトコルを書き込む  
			httpSend.setRequestMethod(HttpConnection.POST);//通信方法を、「POST」に設定  
			httpSend.setRequestProperty("Content-Type","text/plain");//ヘッダのプロパティ値を設定  
			//データを書き込む
			OutputStream outs=httpSend.openOutputStream();//OutputStremのオープン  
			byte sendByte[]=text.getBytes();//文字列をバイト値に変換  
			for(int i=0;i<sendByte.length;i++)outs.write(sendByte[i]);//１バイトづつサーバーへ送る  
			outs.flush();//フラッシュ  
			outs.close();//クローズ  
			httpSend.connect();//HTTP で接続し、メッセージを送受信  
			httpSend.close();//コネクションの切断  
		}catch(Exception e1){ 
		//例外処理  
		System.out.println("ConnectionError" +e1); 
		return false; 
		} 
	return true; 
	} 
//-----------------------------------------------------------  
//fileNameで指定されたファイルから、データを読み取る  
//-----------------------------------------------------------  
	boolean mediaDL(String fileName){
	HttpConnection htpc = null;
	InputStream in = null;
	boolean test=true;
        int i=0,j=0;
		try{
			int contentLength = 0;
			//Httpコネクションの確立S
			String url=IApplication.getCurrentApp().getSourceURL()+ fileName;//読み込み先のURL 
			htpc=(HttpConnection)Connector.open(url,Connector.READ,true); 
			htpc.setRequestMethod(HttpConnection.GET);
			htpc.connect();
			//データの長さを取得
			contentLength = (int)htpc.getLength();
			//ストリームの接続
			length=contentLength;
			in=htpc.openInputStream();
			data = new byte[contentLength];
			test=true;
			while(test!=false){
			int lo=in.read();
			if(lo<0){
			test=false;
				}else{
				data[j]=(byte)lo;
				j++;
				}
			}
		} catch (Exception e) {
		return false;
		} finally {
			try {
                		if (null != in) {
				in.close();
				}
            		} catch (Exception e) {
            		return false;
	       		}
			try {
                		if (null != htpc) {
					htpc.close();
					return true;
				}
			} catch (Exception e) {
			return false;
			}
		}
	return false;
	}
//-----------------------------------------------------------
//データ列をスクラッチパッドに保存
//-----------------------------------------------------------	
	boolean save(byte[] data){
	OutputStream out = null;
	int length = data.length;
	try {
	out = Connector.openOutputStream("scratchpad:///0;pos=0");
	out.write(data);
	out.flush();
        } catch (Exception e) {
            return false;
	} finally {
            try {
		if (null != out) {
			out.close();
		}
	    } catch (Exception e) {
	    return false;
	    }
	}

	return true;
	}
//-----------------------------------------------------------
//fileNameで指定されたファイルから、データを読み取り文字を表示
//-----------------------------------------------------------
	String receive(String fileName){ 
		int len,a;//データの保存に使用  
		byte readByte[]=new byte[256];//データを保存する先  
		try{
			String url=IApplication.getCurrentApp().getSourceURL()+fileName;//読み込み先のURL  
			HttpConnection httpRead=(HttpConnection)Connector.open(url,Connector.READ,true);//サーバーとの接続  
			httpRead.setRequestMethod(HttpConnection.GET);//通信方法をGETに設定  
			httpRead.connect();//HTTP で接続し、メッセージを送受信  
			InputStream ins=httpRead.openInputStream();//InputStremのオープン  
			len=0;//バッファー？のクリア  
			while((a=ins.read())>=0)readByte[len++]=(byte)a;//データの取り込み  
			ins.close();//クローズ   
			httpRead.close();//切断   
		}catch(Exception e1){ 
		//例外処理  
		System.out.println("ConnectionError" +e1); 
		return ""; 
		} 
	return new String(readByte,0,len);//読み込んだ結果を文字列に変換し、戻り値に設定する
	} 
} 
