Http://blog.csdn.net/guanwen_zhang/archive/2007/11/04/1866346.aspx
A Web Service is an additional interface provided by a website and can be called by other websites.
You can think of a Web Service as a self-contained component with one or more calling methods. He
It can be deployed anywhere in inetnet. Customers in any place in the world through the call method provided by him
. Google provides a Web service that allows you to use its database to search for webpages. Google's Web service mainly provides three methods: dogooglesearch (), dogetcachedpage (), and dospellingsuggestion (). the most common method is dogooglesearch (). The method returns results that match the query characters. Then this method returns an instance of the googlesearchresult class, which contains the search results. To implement Google's Web Services, You need to obtain a license from Google. Now this license is no longer issued, but it can be found on the Internet. The following describes how to use Google services using C ++ builder: first, create a project and save it as WebService. BPR: Save the CPP file as mainunit. CPP, and then in file | new | other... select the webservces page, select WSDL importer, and click OK. The WSDL importer wizard appears. Enter the URL of Google's Web Service Interface in location of WSDL file or URL: into _ fastcall tform1: button1click (tobject * sender)
{
Ansistring content;
Ihtmlelement * body;
Ihtmldocument * document;
Googlesearchresult * result;
_ Di_googlesearchport search;
Ansistring quer = edit1-> text; If (quer = "")
{
Showmessage ("the query content is blank! ");
Return;
}
Search = getgooglesearchport (true, "http://api.google.com/GoogleSearch.wsdl ");
Try
{
Result = search-> dogooglesearch ("tgctjkyos3yitlyzi9hg5qubry8bgqim", Quer, 0, 10, false, "", false ,"","","");
}
Catch (exception & exception)
{
Showmessage ("network fault! ");
} For (INT I = 0; I <10; I ++)
{
Ansistring Title = Result-> resultelements [I]-> title;
Ansistring url = Result-> resultelements [I]-> URL;
Ansistring text = Result-> resultelements [I]-> snippet;
Content + = "<a href =" + URL + "target = _ blank>" + title + "</a> <br>" + TEXT + "<br> <br> ";
} Cppwebbrowser1-> navigate (L "about: blank ");
Ansistring STR = "<HTML>" + content + "Sethtml (cppwebbrowser1, STR );
}
//---------------------------------------------------------------------------
The sethtml implementation functions are as follows:
Void _ fastcall tform1: sethtml (tcppwebbrowser * webbrowser, ansistring HTML)
{
Istream * stream;
Hglobal hhtmltext;
Ipersiststreaminit * PSI;
If (webbrowser-> document = NULL)
Return;
Hhtmltext = globalalloc (gptr, HTML. Length () + 1 );
If (0 = hhtmltext ){
Showmessage ("globalalloc error ");
Return;
}
Copymemory (hhtmltext, HTML. c_str (), HTML. Length ());
Olecheck (createstreamonhglobal (hhtmltext, true, & stream ));
Try {
Olecheck (webbrowser-> document-> QueryInterface (_ uuidof (ipersiststreaminit), (void **) & psi ));
Try {
Olecheck (PSI-> initnew ());
Olecheck (PSI-> load (Stream ));
} Catch (...){
Psi-> release ();
}
} Catch (...){
Stream-> release ();
}
// Delete PSI;
Psi-> release ();
// Delete stream;
Stream-> release ();
}
You also need to add the # include "mshtml. H" file to the header file, compile the connection, and generate an executable file. Add the content to be searched in edit and click button. If you need other attributes, you can select other attributes of the search result in result-> resultelements [I. The search results are finally displayed in ppwebbrowser. Due to the process of sending and parsing XML files, the display process may take some time interval and you need to wait patiently.