2011-09-26 1 views
2

Android 앱을 개발 중이며 일부 웹 서비스 참조를 가져와야합니다. 현재 Eclipse Indigo을 사용하고 있으며 가져 오기 웹 참조 옵션을 찾지 못 했으므로 아무에게도 어떻게 도와 줄 수 있습니까?Eclipse Indigo를 사용하여 Android에서 웹 서비스 참조를 가져 오는 방법은 무엇입니까?

+0

웹 서비스 참조 ?? 서비스 참조는 –

+0

입니다. – nag

+0

이 질문에 대한 더 많은 정보가 필요합니다. "웹 서비스 참조"가 의미하는 바를 모릅니다. –

답변

1

Android에서 WSDL 서비스 참조를 자동으로 만드는 방법이 없다는 것을 알고있는 한.

불행히도 WSDL 서비스에 직접 액세스하는 클래스와 메소드를 정의해야합니다.

웹 서비스가 SOAP을 사용하는 경우 http://code.google.com/p/ksoap2-android/을 조사하여 서비스 호출을 지원할 수 있습니다.

+0

웹 서비스를 사용하는 WCF가 아닙니다. – nag

+0

아마도, WSDL (웹 서비스 설명 언어)을 지원하는 이전 .net 기술 중 하나를 사용하고있을 것입니다. 어쨌든 WSDL을 읽고 서비스 참조/클래스를 생성 할 수있는 Eclipse 확장을 사용할 수 없다고 생각합니다. – Rob

+0

나중에 현재 axis2java jar 파일을 사용했고 "import web reference"와 같은 옵션을 얻었지만이 인디고 버전에서 오류가 발생합니다. 이렇게하는 다른 방법이 있습니까? – nag

1

import java.io.BufferedReader; 가져 오기 java.io.InputStream; 가져 오기 java.io.InputStreamReader; 가져 오기 java.util.ArrayList;

import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient;

공용 클래스 DbRequest {

public DbRequest() { 
} 
public String sendDBRequest(ArrayList<NameValuePair> httpPost) { 
    String result = ""; 

    String url = "http://www.YourURL.com/android/dbservice.php";//For Online Server 
    //String url = "http://10.0.2.2/android/dbservice.php"; 
    //String url = "http://192.168.1.4/android/dbservice.php";//For Local Server 
    InputStream is = null; 

    try { 
     HttpClient httpclient = new DefaultHttpClient(); 
     HttpPost httppost = new HttpPost(url); 
     httppost.setEntity(new UrlEncodedFormEntity(httpPost)); 
     HttpResponse response = httpclient.execute(httppost); 
     HttpEntity entity = response.getEntity(); 
     is = entity.getContent(); 
    } catch (Exception e) { 
     result = e.toString(); 
    } 

    try { 
     BufferedReader reader = new BufferedReader(new InputStreamReader(
       is, "iso-8859-1"), 8); 
     StringBuilder sb = new StringBuilder(); 
     String line = null; 
     while ((line = reader.readLine()) != null) { 
      sb.append(line + "\n"); 
     } 
     is.close(); 
     result = sb.toString(); 
    } catch (Exception e) { 

     result = e.toString(); 
    } 
    return (result); 
} 

}

은 DB 서비스의 URL 주소를 교체합니다. 그것은 그것을 호출하고 결과로 문자열을 받게됩니다 ...

+0

내 서비스 URL에 너무 많은 클래스와 메소드가 있으므로 어떻게 Android 앱에서 사용할 수 있습니까? – nag

+0

당신의 활동에 위 클래스의 인스턴스를 생성하고 웹 서비스에서 읽을 수있는 데이터를 게시하려면 httpPost pair list를 전달하여 해당 함수를 호출하십시오. 다음과 같이하십시오. DBService dbservice = new DBService(); dbsesrvice.sendDBRequest (httpPost); –