新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 開發(fā)MIDP聯(lián)網應用程序

開發(fā)MIDP聯(lián)網應用程序

作者: 時間:2012-05-07 來源:網絡 收藏

importjavax.microedition.io.Connector;

importjavax.microedition.io.HttpConnection;

importjavax.microedition.midlet.MIDlet;

importjavax.microedition.midlet.MIDletStateChangeException;

/**

*利用GET發(fā)送request的sample

*從控制臺輸出response

*/

publicclassGETTestextendsMIDlet{

/**

*訪問服務器

*/

protectedvoidstartApp()throwsMIDletStateChangeException{

try{

HttpConnectioncon=(HttpConnection)Connector.open(http://www.nec-mfriend.com/en/);

//指定GET

con.setRequestMethod(HttpConnection.GET);

DataInputStreamin=con.openDataInputStream();

intinput;

while((input=in.read())!=-1){

System.out.print((char)input);

}

in.close();

//關閉鏈接

con.close();

}catch(IOExceptione){

e.printStackTrace();

}

}

protectedvoidpauseApp(){

}

protectedvoiddestroyApp(booleanarg0)throwsMIDletStateChangeException{

}

}

ex.4

實際操作后的結果。

1.6.利用HEAD

接下來介紹如何利用HEAD方法獲取文件的header。多數情況下,在HTTPheader中,包含了文件種類、尺寸大小、文字編碼、回復日期、request文件的最后修改時間、以及兌現(xiàn)期限的截止日期等。一般來講,使用HEAD方法檢查其是否對兌現(xiàn)內容進行了新信息的替換。

為使用HEAD,如下所示要在作成的HttpConnection的setRequestMethod方法中,指定HttpConnection的static變量HEAD。

HttpConnectioncon=(HttpConnection)Connector.open(http://www.nec-mfriend.com/en/);

con.setRequestMethod(HttpConnection.HEAD);

獲取HEAD信息的方法。

360截圖20120507114150638.jpg

表3

下面是利用getHeaderField方法和getHeaderFieldKey方法,獲取全部header信息的sample。這個sample與剛才所介紹的一樣,是以在模擬器上進行操作為前提而作成的,它只用于說明,實際操作還沒有進行測定。由此獲取的全部header信息內容將輸入控制臺。

importjava.io.IOException;

importjavax.microedition.io.Connector;

importjavax.microedition.io.HttpConnection;

importjavax.microedition.midlet.MIDlet;

importjavax.microedition.midlet.MIDletStateChangeException;

/**

*利用HEAD發(fā)送request的sample

*從控制臺輸出response

*/

publicclassHEADTestextendsMIDlet{

/**

*顯示header信息

*/

protectedvoidstartApp()throwsMIDletStateChangeException{

try{

HttpConnectioncon=

(HttpConnection)Connector.open(http://www.nec-mfriend.com/en/);

//指定HEAD

con.setRequestMethod(HttpConnection.HEAD);

//取得關鍵的HTTPheader信息——成對的值

inti=0;

Stringmessage=;

Stringkey=;

Stringvalue=;

while((value=con.getHeaderField(i))!=null){

key=con.getHeaderFieldKey(i++);

message=message+key+:+value+n;

}

System.out.println(message);

//關閉鏈接

con.close();

}catch(IOExceptione){

e.printStackTrace();

}

}

protectedvoidpauseApp(){

}

protectedvoiddestroyApp(booleanarg0)throwsMIDletStateChangeException{

}

}

ex.5

實際操作后的結果如下所示。

圖3

1.7.利用POST

為能利用POST發(fā)送request,要使用InputStream和OutputStream。用OutputStream向服務器發(fā)送數據,而InputStream則接收來自服務器的response。

用下述方法指定POST。

HttpConnectioncon=(HttpConnection)Connector.open(http://www.yahoo.com);

con.setRequestMethod(HttpConnection.POST);

ex.6

如下所示使用OutputStream在requeat信息中輸入數據,使輸入數據為(message=helloworld),而變量con是指定了POST的HttpConnection。

Stringmessage=hmessage=helloworldh;

DataOutputStreamdos=con.openDataOutputStream();

byte[]request=message.getBytes();

for(inti=0;i

dos.writeByte(request[i]);

}

dos.flush();

ex.7

下面實際是利用POST與服務器進行通信的sample。在這里,WEB服務器將轉發(fā)利用POST發(fā)送的信息值,并接收最終結果response。接收的response內容將被輸入控制臺,請用模擬器進行確認。

importjava.io.DataInputStream;

importjava.io.DataOutputStream;

importjava.io.IOException;

importjavax.microedition.io.Connector;

importjavax.microedition.io.HttpConnection;

importjavax.microedition.midlet.MIDlet;

importjavax.microedition.midlet.MIDletStateChangeException;

/**

*利用POST發(fā)送request的sample



評論


相關推薦

技術專區(qū)

關閉