수안이의 컴퓨터 연구실

  • Mainpage
  • About Me
  • Tags
  • Metapage
  • Notice
  • Location
  • Keywords
  • Guestbook
  • Admin
  • Write an Article
  • Total | 1694964
  • Today | 709
  • Yesterday | 606

1 Articles, Search for 'Google api'

  1. 2007/02/05 웹 서비스의 세계로 - 구글 검색을 활용해보자.
Programming/C#2007/02/05 17:26

웹 서비스의 세계로 - 구글 검색을 활용해보자.

mygoogle_source.zip
mygoogle.zip
고수닷넷 - 디버깅전문가님


웹 서비스는 이제 많은 사람들로부터 각광받는 서비스가 되었습니다. 하지만 웹 서비스를 어떻게 사용해야 할지, 실제로 어떻게 사용되고 있는지에 대한 예는 그리 많지 않습니다. 그래서 이번 강좌에서는 google이 직접 제공하는 검색 서비스를 활용하는 방법을 통해서 웹 서비스가 실제로 어떻게 활용될 수 있는지 살펴보도록 합니다.


완성될 프로그램의 모습은 다음과 같습니다.


사용자 삽입 이미지

웹 브라우저에서 구글 검색을 했을 때의 모습과 매우 흡사한데요, 이를 구현하기란 그리 어렵지 않습니다.


1. 웹 서비스 SDK 다운로드 하기


구글 웹 서비스에 대한 설명은 Google Web APIs라는 형태로 제공됩니다. 간단히 다음 사이트를 방문해보시면 관련 도움말과 SDK를 다운로드 받을 수 있습니다.


http://www.google.com/apis/


Google Web APIs

구글 웹 API를 사용하는 프로그래머.... :-)



2. Windows Forms 프로그램 작성


SDK를 설치했다면, VS .NET을 실행하여 Windows Forms를 작성합니다. 앞의 그림에서 설명한것처럼 해도 되고 아니어도 상관없습니다. 어떤 형태로든 만들면 되지만, 가장 중요한 부분은 결과를 HTML 형태로 보여주기 위해서는 Web Browser 컨트롤을 추가해주어야 한다는 것입니다. 웹 브라우저 컨트롤은 왼쪽에 있는 툴에서 새로 추가 메뉴를 눌러서 직접 선택해 주시면 됩니다.


컨트롤을 배치하고 난 다음에는 검색 버튼을 추가하고 검색 버튼이 클릭되었을 때 다음 메서드를 실행할 수 있도록 구현해 주시면 됩니다.


[private void buttonSearch_Click(object sender, System.EventArgs e)

{

   // before search

   //

   labelSearchText.Text = "Searching...";

   labelSearchText.Update();



   // create Google Search object

   //

   GoogleSearchService s = new GoogleSearchService();

   GoogleSearchResult r;



   // call search function

   //

   r = s.doGoogleSearch(

       "",  ; You license key!

       textSearch.Text,

       0,

       10,

       false, "", false, "", "", "");



   // create HTML document to show result

   //

   string strFile = "result.html";

   StreamWriter sw = File.CreateText(strFile);



   // Header inforamtion

   //

   sw.WriteLine("<HTML><HEAD></HEAD><BODY>");



   // Category

   //

   foreach(DirectoryCategory dc in r.directoryCategories)

   {

       sw.Write("<b>Category</b> : ");

       sw.WriteLine(dc.fullViewableName);

       sw.WriteLine("<br><br><br>");

   }



   // iterate items

   //

   foreach(ResultElement re in r.resultElements)

   {

       // Title

       //

       string strTitle = "<a href=\"" + re.URL + "\">" +

                         re.title + "</a><br>";

       sw.WriteLine(strTitle);

       

       // snippet

       //

       string strSnippet = re.snippet +"<br>";

       sw.WriteLine(strSnippet);


       // link and cache size

       //

       string strLink = "<a href=\"" + re.URL + "\">" + re.URL + "</a> - "

                        + re.cachedSize + "<br><br>";

       sw.WriteLine(strLink);


       // 2 line

       //

       sw.WriteLine("<br><br>");

   }



   // file close

   //

   sw.Close();


   

   // result inforamtion

   //

   labelSearchText.Text = textSearch.Text + " 's web search";


   int estResults = r.estimatedTotalResultsCount;

   double ldTime = r.searchTime;

   labelSearchResult.Text = "Total " + Convert.ToString(estResults) + "  " +

                   "1 - 10 seach result  Total time:" +

                                        Convert.ToString(ldTime);



   // browsing!

   //

   object obj = null;

   DirectoryInfo di = new DirectoryInfo(Environment.CurrentDirectory);

   string strFilePath = di.FullName + "\\" + strFile;

   WebBrowser.Navigate(strFilePath, ref obj, ref obj, ref obj, ref obj);

}



// Google API homepage

//

private void linkLabel1_LinkClicked(object sender,

                     System.Windows.Forms.LinkLabelLinkClickedEventArgs e)

{

   object obj = null;


   WebBrowser.Navigate("http://www.google.com/apis/", ref obj, ref obj,

                       ref obj, ref obj);

}


이 때 중요한 부분은 doGoogleSearch() 메서드를 호출할 때 매개 변수로 License Key를 입력해 주어야 한다는 점입니다. 구글 계정을 만들면 라이센스 키를 받을 수 있습니다.


정말 간단하죠?



정리


이번 강좌에서는 구글이 제공하는 검색 서비스를 이용해봄으로써 웹 서비스가 어떻게 배포되고 어떻게 사용해야 할 것인지에 대한 기본적인 개념을 살펴보았습니다. 웹 서비스는 웹 공개되어 있으면 누구나 사용할 수 있기 때문에, 구글의 경우처럼 사용자별로 라이센스 키를 배포하는것도 하나의 방법일 수 있겠습니다.


그럼 즐거운 프로그래밍 하세요~


(참고 : 이 글은 제가 http://www.codeproject.com/cs/webservices/mygoogle.asp에 올려놓은 글을 읽기 쉽게 편집/번역한 것입니다.  ^^)

"C#" 카테고리의 다른 글
  • C# 스레드 사용 (1)2007/02/05
  • Office 2003 : Visual Studio Tools for Office Sy... (0)2007/02/05
  • 웹 서비스의 세계로 - 구글 검색을 활용해보자. (0)2007/02/05
  • 정렬된 Named Color List 만들기 (0)2007/02/05
  • 여러가지 윈도우 시스템 제어 (2)2007/02/05
2007/02/05 17:26 2007/02/05 17:26
Posted by webdizen
Tags Google api
No Trackback No Comment

Trackback URL : http://www.webdizen.net/blog/trackback/2602

Leave your greetings.

[로그인][오픈아이디란?]

«Prev  1  Next»

RSS HanRSS
Blog Image
webdizen
이곳은 컴퓨터에 대해 연구하고, 공유하고, 소통하기 위한 연구실입니다. 개인적으로는 OLAP, Data Mining, Semantic Web, Data Modeling에 대해서 연구하고 있습니다.

Categories

전체 (3009)
Webdizen (141)
Life (6)
Diary (16)
Blog (9)
IDEA (2)
Travel (10)
Book (16)
Photo (7)
Movie (8)
Music (14)
Leisure Sports (10)
Funny (6)
Hardware (121)
Software (120)
Windows (5)
Unix & Linux (120)
Installation (5)
Kernel (10)
System (34)
Develop (22)
X-Window (0)
Applicaton (31)
Security (4)
Framework (2)
Hadoop (2)
Programming (804)
Algorithm & Data Structure (1)
Assembly (38)
UNIX/Linux C (95)
C++ (128)
STL (4)
Java (38)
Win32 API (92)
ATL/COM (44)
MFC (151)
.NET (26)
WCF/WPF (4)
C# (28)
Network Programming (17)
Database Programming (12)
OpenGL / DirectX (13)
Multimedia Programming (0)
Game Programming (21)
Parallel Distributed Progra... (0)
Reverse Engineering (0)
Debugging (9)
Python (1)
Ruby (1)
Ruby on Rails (1)
QT (4)
GTK (0)
JSP (0)
PHP (6)
ASP.NET (6)
ASP (2)
Development (28)
Useful Library (2)
Data Modeling (0)
Database (105)
Oracle (4)
MSSQL (41)
MySQL (2)
Data Warehouse (2)
Data Mining (4)
Network (66)
Web (79)
DHTML (4)
XHTML (1)
Javascript (1)
CSS (1)
AJAX (9)
XML (11)
Flex (1)
Silverlight (3)
Security (91)
DoS (1)
Kernel (10)
Scanning (3)
Sniffing (0)
Spoofing (4)
Overflow (28)
Web (11)
Shell (10)
Format String (14)
Window (2)
Embedded (70)
Multimedia (27)
Mobile (14)
Graphic (24)
Management (633)
Knowledge (581)
Hadoop (0)

Notice

  • 메타 블로그 사이트에 등록
  • 새해 맞이 블로그의 변화
  • 블로그 명칭 변경
  • 도메인(www.webdizen.net) 구...
  • TEXTCUBE 1.6.1로 업그레이드...

Tags

  • 양주
  • OLAP
  • 석재복합연구소
  • Podcasts
  • 대한민국
  • 색상
  • 프로그래머
  • 뉴욕타임즈
  • FoxPro
  • JDBC
  • 그랜드캐년
  • Function Pointer
  • 페이지 폴트
  • Thread 사용
  • 에러
  • Data Stream
  • console
  • 필기도구
  • 행정본관
  • 시바스 리갈

Recent Articles

  • 트위터(Twitter)의 시작!.
  • 청년 리더의 조건.
  • 애플의 타블렛 PC - 아이패드....
  • 미래의 인터페이스 - 육감 기....
  • 기초발성법 동영상 강좌.

Recent Comments

  • 경청... 너무나 중요한데.......
    webdizen 14:59
  • 학교 과제물중 쓰레드에 대하....
    장진혁 03/17
  • 관리자만 볼 수 있는 댓글입....
    비밀방문자 03/12
  • 상대방의 이야기를 열심히 경....
    DoNuts 03/03
  • 좋은글 잘 보고 갑니다..
    Und_hacker 01/08

Recent Trackbacks

  • printf,scanf를 이용한 형식....
    yundream의 프로그래밍 이야기 03/10
  • 파일 열기/저장하기 CFileDialog.
    은마군의 나태블록 2009
  • World IT Show 2008.
    상우 :: Oranzie's BLOG 2008
  • cvs서버 설치하기.
    3인3색 2008
  • 속속 공개되는 Google Chart....
    PHP와 Web 2.0 2007

Archive

  • 2010/02 (1)
  • 2010/01 (6)
  • 2009/12 (5)
  • 2009/09 (3)
  • 2009/08 (1)

Calendar

«   2010/03   »
일 월 화 수 목 금 토
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

Bookmarks

    • Administration
      • IIS.NET
      • NTFAQ
      • OS의 모든 것
      • 리눅스포털
    • Database
      • SQL Server Central
      • SQL Team
    • Development
      • .NET Heaven
      • ASP Alliance
      • ASP.NET 2.0
      • Bullog.net
      • C# Corner
      • C++ (C PlusPlus.com)
      • C++ Reference
      • CodeGuru
      • CodePlex
      • DebugLab
      • Dev Articles
      • Devpia
      • DotNet Junkies
      • DotNet Zone
      • Driver Online
      • GOSU.NET
      • HOONS 닷넷
      • Joinc 팀블로그
      • KOSR
      • MSDN Home Page
      • OSR Online
      • Sky.ph - 개발자 커뮤니...
      • TAEYO.NET
      • The Code Project
      • WindowsClient.net
      • 김상욱의 개발자 Side
      • 조인시 위키
    • Human Networks
      • belief21c's e-space
      • I think I can
      • Invisible Rover's Blog :D
      • Polarux - Linuxing
      • Rodman®
      • 까만 나비
      • 나를 가꾸는 시간.
      • 단녕
      • 상우 :: Oranzie's BLOG
    • Information Technology
      • Microsoft TechNet
      • 지디넷코리아 - 글로벌...
    • Security
      • FoundStone
      • milw0rm
      • NewOrder
      • OpenRCE
      • Phrack.org
      • Reverse Engineering b1...
      • Reverse Engineering Team
      • RootKit
      • SecurityFocus
      • SecurityXploded by Nag...
      • Wow Hacker
      • Zone-H
Textcube
Louice Studio Inc.
Powered by Textcube. Original designed by Tistory.