2014-05-16 5 views
2

Java ME 응용 프로그램 (프로토 타입)을 만들었으므로 이제 MIDlet에서 WEB API 서비스를 사용해야합니다. 우선, MIDlet에서 웹 API 서비스를 사용할 수 있습니까? WCF를 Web API로 변환하여 J2ME 앱이 내 서비스에보다 쉽게 ​​접근 할 수있게 만들었습니다. 문제는 MIDlet에서 웹 API 메서드를 호출하는 방법을 모르는 것입니다. 비슷한 것을 한 적이 있습니까? 공유 할 수있는 링크가 있습니까 ??Java ME 응용 프로그램에서 ASP.NET 웹 API를 사용하는 방법

편집 : 나는 웹 API에서 방법을 소비하지만, 여전히 난 정말 모바일 화면에 표시 할 수있는 무언가로 웹 API에서 내가 무엇을 얻을 설정하는 방법을 모르는 것이 발견

이것은 내가 사용하고 코드입니다 :

HttpConnection connection = null; 
InputStream is = null; 

final ByteArrayOutputStream bos = new ByteArrayOutputStream(); 

byte[] response = null; 

try { 
    connection = (HttpConnection)Connector.open("http://myminimarket/api/customers/GetCustomers", 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();    
     } 

     if (is != null) { 
      is.close(); 
      is = null; 
     } 

     if (connection != null) { 
      connection.close(); 
      connection = null; 
     } 
    } catch (Exception e2) { 
     e2.printStackTrace(); 
    } 
} 

는 그리고 이것은 내가 GetCustomers에서 얻는 XML의 예입니다

<ArrayOfCustomer xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/WSWebAPI.Helpers"> 
<Customer> 
<codigoCli>30</codigoCli> 
<direccion>MCDO. SAN MARTIN PSTO. Nº 06</direccion> 
<nroID>26626315</nroID> 
<nroTelef>365548</nroTelef> 
<razonSocial>ABANTO CASTAÑEDA, PAULA</razonSocial> 
<tipoPersona>N</tipoPersona> 
</Customer> 
<codigoCli>61</codigoCli> 
<direccion> 
JR. SANTA TERESA DE JUORNET MZA. L. LOTE 11 (FRENTE AL QUINDE-COSTADO DE FARMACIA) 
</direccion> 
<nroID>10414741067</nroID> 
<nroTelef/> 
<razonSocial>ACUÑA SIFUENTES, ILZE SOLEDAD</razonSocial> 
<tipoPersona>N</tipoPersona> 
</Customer> 
<Customer> 
<codigoCli>69</codigoCli> 
<direccion>JR. JOSE GALVEZ Nº 478</direccion> 
<nroID>15586005</nroID> 
<nroTelef/> 
<razonSocial>AEDO YANQUI, MARGARITA</razonSocial> 
<tipoPersona>N</tipoPersona> 
</Customer> 
<Customer> 
<codigoCli>115</codigoCli> 
<direccion>JR. AMALIA PUGA Nº 1008 TELEF. 367878</direccion> 
<nroID>10266028356</nroID> 
<nroTelef/> 
<razonSocial>ALARCON ZEGARRA, EDULFO</razonSocial> 
<tipoPersona>N</tipoPersona> 
</Customer> 
<Customer> 
<codigoCli>144</codigoCli> 
<direccion>AV. EVITAMIENTO SUR Nº 1514</direccion> 
<nroID>10267292588</nroID> 
<nroTelef/> 
<razonSocial>ALCANTARA GARCIA EDESBITA</razonSocial> 
<tipoPersona>N</tipoPersona> 
</Customer> 
<Customer> 
<codigoCli>194</codigoCli> 
<direccion> 
JR. 6 DE JULIO MZ. "C" LOTE 7 URB. LUIS ALBERTO SANCHEZ 
</direccion> 
<nroID>26956665</nroID> 
<nroTelef>362648</nroTelef> 
<razonSocial>ALVARADO CARDENAS, CONSUELO SOLEDAD</razonSocial> 
<tipoPersona>N</tipoPersona> 
</Customer> 
</ArrayOfCustomer> 

지금 나는 또한 내가 kXML2를 사용해야하지만, 모든 정보가 혼란 것을 읽고, 내가 찾을 수 있었던 유일한 좋은 튜토리얼은 this one했다, 문제는

를 더 이상 사용되지 않습니다 according to this page KXML를 사용한다는 것입니다 제발 KXML2를 사용 해본 적이 있다면 정말 고맙겠습니다.

P. 현재 나의 서비스는 XML을 반환하지만 Java ME에서 json 객체로 작업하는 방법을 알고 있다면 쉽게 json을 대신 반환 할 수 있습니다.

미리 감사드립니다.

+0

정말 도움이 필요하세요 – Axel

+0

이 http://stackoverflow.com/questions/2981296/json-parser-for-j2me –

+0

@JigarJoshi OK, 그것의 : 여기

는 반환 값을 읽는 몇 가지 예입니다 내가 찾고있는 것 같다. 불행히도이 병을 사용하는 방법에 대한 예는 볼 수 없습니다. – Axel

답변

1

저는 대부분의 JavaME 개발자가 웹 사이트 URL을 호출하는 것으로 간단하게 생각한다고 생각합니다. 예 :

http://www.yourdomain.com/yourwebservice.aspx 

그리고 yourwebservice.aspx은 단순히 데이터를 반환합니다.

I가 작업 한 게임에서 최고 점수 시스템의 경우, 나는

http://www.gamename.com/webservice.php?action=gethighscores 

같은 전화 것 그리고 출력은 일반 텍스트로 최고 기록, 내 MIDlet은 다음 읽을 것 것이다. http://docs.oracle.com/javame/config/cldc/ref-impl/midp2.0/jsr118/javax/microedition/io/HttpConnection.html

+0

@mr_lu 제 질문을 업데이트했습니다. – Axel

관련 문제