我需要一些幫助。使用JME(或J2ME)消費REST服務
我需要知道如何調用REST服務和解析xml。
我的PHP腳本只發回一些xmlcode,僅此而已。(沒有WSDL和UDDI)
的平臺諾基亞5800 S60第三版。(一個將適用) 諾基亞sdk去了相同的名字。 我爲這個項目安裝了Netbeans。
唯一的東西,我覺得是soap based。
爲此我可以使用哪些方法/庫?我不得不提到,我也是java/netbeans的新手。
我需要一些幫助。使用JME(或J2ME)消費REST服務
我需要知道如何調用REST服務和解析xml。
我的PHP腳本只發回一些xmlcode,僅此而已。(沒有WSDL和UDDI)
的平臺諾基亞5800 S60第三版。(一個將適用) 諾基亞sdk去了相同的名字。 我爲這個項目安裝了Netbeans。
唯一的東西,我覺得是soap based。
爲此我可以使用哪些方法/庫?我不得不提到,我也是java/netbeans的新手。
要調用REST Web服務可以使用HttpConnection類:
HttpConnection connection = null;
InputStream is = null;
final ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] response = null;
try {
connection = (HttpConnection)Connector.open("http://api.yourserver.com/rest/things/12", Connector.READ);
connection.setRequestMethod(HttpConnection.GET);
connection.setRequestProperty("User-Agent", "Profile/MIDP-2.0 Configuration/CLDC-1.1");
if (connection.getResponseCode() == HttpConnection.HTTP_OK) {
is = connection.openInputStream();
if (is != null) {
int ch = -1;
while ((ch = is.read()) != -1) {
bos.write(ch);
}
response = bos.toByteArray();
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (bos != null) {
bos.close();
bos = null;
}
if (is != null) {
is.close();
is = null;
}
if (connection != null) {
connection.close();
connection = null;
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
現在響應將包含您的服務器吐出XML。您可以使用kXML2庫來解析它。請注意,該庫引用了XMLPull庫,因此您必須將其包含在您的項目中。
我正在使用REST,並且使用JSONObject和JSONArrays來處理Java ME中的Mobile Ajax。在REST上工作是一種簡單的方法,庫需要以源代碼格式下載並使用Netbeans或ANT進行編譯,這很容易,只需通過SVN檢查項目並在網頁(WithXML或WithoutXML)中進行構建即可是使用REST和雅虎地圖等公共Web服務的樣本!我希望你喜歡它。
實際上,諾基亞5800的平臺是Series60 FIFTH版本,但這對你的問題沒有關係 – 2009-07-30 18:58:51
是的,你是對的,除了我只能找到sdk第三版。 我不確定如何處理它,但我會發現。 – Richard 2009-07-31 14:26:14