Android 앱을 개발 중이며 일부 웹 서비스 참조를 가져와야합니다. 현재 Eclipse Indigo을 사용하고 있으며 가져 오기 웹 참조 옵션을 찾지 못 했으므로 아무에게도 어떻게 도와 줄 수 있습니까?Eclipse Indigo를 사용하여 Android에서 웹 서비스 참조를 가져 오는 방법은 무엇입니까?
답변
Android에서 WSDL 서비스 참조를 자동으로 만드는 방법이 없다는 것을 알고있는 한.
불행히도 WSDL 서비스에 직접 액세스하는 클래스와 메소드를 정의해야합니다.
웹 서비스가 SOAP을 사용하는 경우 http://code.google.com/p/ksoap2-android/을 조사하여 서비스 호출을 지원할 수 있습니다.
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 주소를 교체합니다. 그것은 그것을 호출하고 결과로 문자열을 받게됩니다 ...
내 서비스 URL에 너무 많은 클래스와 메소드가 있으므로 어떻게 Android 앱에서 사용할 수 있습니까? – nag
당신의 활동에 위 클래스의 인스턴스를 생성하고 웹 서비스에서 읽을 수있는 데이터를 게시하려면 httpPost pair list를 전달하여 해당 함수를 호출하십시오. 다음과 같이하십시오. DBService dbservice = new DBService(); dbsesrvice.sendDBRequest (httpPost); –
웹 서비스 참조 ?? 서비스 참조는 –
입니다. – nag
이 질문에 대한 더 많은 정보가 필요합니다. "웹 서비스 참조"가 의미하는 바를 모릅니다. –