asp.net 과 안드로이드 앱 연동을 포스팅 해보려고 합니다.. (xml, soap통신 이용)
1. asp.net 웹사이트에 웹서비스 -> 웹메소드 구현
2. android에서 Soap통신 클래스 작성
3. searchData 결과값 xml 파싱
-----------------------------------------------------------------------------------------------------
1. 웹서비스 구축 :
1) 비쥬얼 스튜디오를 사용하였습니다
2) 웹사이트와 db는 구축되어 있고 테이블이름은 Table_Name 칼럼은 Name,Date,Tel 으로 데이터를 미리 몇개 인서트 해놓은 상태입니다...
3) 비쥬얼스튜디오-> 솔루션 탐색기-> 새항목추가 -> 웹서비스 하면
파일이름.asmx 와 파일이름.cs가 생깁니다.. 여기서는 WebService라고 이름을 주었습니다.
4) WebService.cs 파일을 열면 아래와 같이 보입니다..
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services; /// <summary> /// WebService의 요약 설명입니다. /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] // ASP.NET AJAX를 사용하여 스크립트에서 이 웹 서비스를 호출하려면 다음 줄의 주석 처리를 제거합니다. // [System.Web.Script.Services.ScriptService] public class WebService : System.Web.Services.WebService { public WebService () { //디자인된 구성 요소를 사용하는 경우 다음 줄의 주석 처리를 제거합니다. //InitializeComponent(); } [WebMethod] public string HelloWorld() { return "Hello World"; }
} |
3) HelloWorld() 메소드를 편집합니다.. 이름이 별로니.. Response_SearchData()로 바꾸고 파라미터도 넣어줍니다.
( 어떤 검색값을 받으면 검색결과과 포함된 문자열의 데이터값을 xml로 리턴해주는 예제 소스입니다)
[WebMethod] public string Response_SearchData(string searchData) { String strResonse; SqlConnection con = new SqlConnection (System.Configuration.ConfigurationManager.ConnectionStrings["testConnectionString"] .ConnectionString);
sqlwhere = string.Format("Name like '%{0}%'", searchData); sql = string.Format("SELECT [Name],[Date],[Tel], FROM Table_Name where {0}" ,sqlwhere); DataSet ds = new DataSet(); strResonse = ""; try { con.Open(); SqlDataAdapter da = new SqlDataAdapter(sql.ToString(), con); da.Fill(ds); strResonse = ds.GetXml(); } catch (SqlException ex) { strResonse = "Error:" + ex.ToString(); } catch (Exception ex) { strResonse = "Error:" + ex.ToString(); } finally { if (con.State == System.Data.ConnectionState.Open) { con.Close(); } } return strResonse; |
- SqlConnection con = new SqlConnection (System.Configuration.ConfigurationManager.ConnectionStrings
["testConnectionString"].ConnectionString);
이해가 안되실 텐데요 web.cofing 파일에 testConnectionString 이라는 sql 서버에 접속하는 문장을 구현해 주셔야 합니다.. 인터넷에 asp.net 에서 디비 접속하는 방법은 많으니 이부분은 패스하겠습니다...
- sqlwhere = string.Format("Name like '%{0}%'", searchData);
sql = string.Format("SELECT [Name],[Date],[Tel], FROM Table_Name where {0}" ,sqlwhere);
흔한 sql 문입니다. Table_Name 테이블에서 Name이 포함된 열의 Name,Date,Tel 값을 가져다 줍니다..
- con.Open();
SqlDataAdapter da = new SqlDataAdapter(sql.ToString(), con);
da.Fill(ds);
strResonse = ds.GetXml();
쿼리문을 실행해서 조건에 맞는 값을 xml로 만들어 줍니다..
- ctr+f5 를 눌러서 웹메소드를 실행해 봅니다..
-이런것이 나오면 성공!!
- Response_SearchData를 눌러서 검색할 값을 입력해서
웹브라우저에 정상적인 xml 값이 나온다면 서버 프로그램은 완성입니다..
( Name 에 "tae"를 포함한 row의 Name,Date,Tel 을 xml로 반환)
<string xmlns="http://tempuri.org/">
<NewDataSet><Table><Name>taeyoun</Name><Date>2011-12-31</Date><Tel>010-111-2222</Tel></Table>
<Table><Name>taehoon</Name><Date>1980-12-31</Date><Tel>010-333-444</Tel></Table></NewDataSet>
</string>
양이 너무 많아서 2편에서 계속됩니다...
'안드로이드' 카테고리의 다른 글
CallLog(최근전화기록) 삭제 방법 (0) | 2012.09.21 |
---|---|
WebView 에서 이미지 여백 없이 나오게 하는 방법 (1) | 2012.09.21 |
blob 이미지 insert, select 방법 (0) | 2012.06.14 |
android:id (0) | 2012.05.23 |
Android , asp.net, mssql 연동 [2] (1) | 2012.05.22 |