ezsas
asked on
Java program to display search results using google api
The task is to send a search string to google api and it should display the list of matching search results.
The code mentioned is not working as the google API is deprecated.Please suggest a solution.
The code mentioned is not working as the google API is deprecated.Please suggest a solution.
//Copyright (C) 2002, Google, Inc.
import java.io.*;
import com.google.soap.search.GoogleSearch;
import com.google.soap.search.GoogleSearchFault;
import com.google.soap.search.GoogleSearchResult;
/**
* The GoogleAPIDemo is a demonstration of using the Google Web APIs for
* search and fetching pages from the cache.
*
* @see com.google.soap.search.GoogleSearch
* @see com.google.soap.search.GoogleSearchResult
*/
public class GoogleAPIDemo {
/** Demonstration program to call the Google Web APIs service.
** Usage:<br>
** <tt>java com.google.soap.search.GoogleAPIDemo [key] search Foo</tt><br>
** <tt>java com.google.soap.search.GoogleAPIDemo [key] cached http://www.google.com/</tt>
** <tt>java com.google.soap.search.GoogleAPIDemo [key] spell "britnay spars"</tt>
**/
public static void main(String[] args) {
// Parse the command line
/*if (args.length != 3) {
printUsageAndExit();
}*/
String clientKey ="ABQIAAAAAWMbIopLMDa2odzrkqvrYxQFvBf5fu0PMVBF0-M462aG3BtQpRTfVI3jxVQqDynQuOLaaovN-sPBng";// args[0];
String directive = "search"; //args[1];
String directiveArg ="" ;//args[2];
// Report the arguments received
System.out.println("Parameters:");
System.out.println("Client key = " + clientKey);
System.out.println("Directive = " + directive);
System.out.println("Args = " + directiveArg);
// Create a Google Search object, set our authorization key
GoogleSearch s = new GoogleSearch();
s.setKey(clientKey);
//reading input data from a file
try {
FileInputStream fstream = new FileInputStream("list.txt");
// Get the object of DataInputStream
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;
//Read File Line By Line
while ((strLine = br.readLine()) != null)
{
// Print the content on the console
System.out.println (strLine);
// Depending on user input, do search or cache query, then print out result
if (directive.equalsIgnoreCase("search"))
{
s.setQueryString(directiveArg);
s.setQueryString(strLine);
String temp =strLine;
s.setSoapServiceURL("http://maps.google.com");
//s.setProxyHost("");
//s.setProxyHost("");
//s.setProxyPort(8080);
s.setSafeSearch(true);
//s.setProxyUserName("");
//s.setProxyPassword("");
s.setMaxResults(5);
System.out.println("Starting search engine....");
//s.setLanguageRestricts("English");
s.setSoapServiceURL("http://maps.google.com");
System.out.println(s.doSpellingSuggestion(strLine));
System.out.println("B4 search results");
GoogleSearchResult r = s.doSearch();
System.out.println("after search results");
System.out.println("Google Search Results:");
System.out.println("======================");
System.out.println(r.toString());
}
else if (directive.equalsIgnoreCase("cached"))
{
System.out.println("Cached page:");
System.out.println("============");
byte [] cachedBytes = s.doGetCachedPage(strLine);
// Note - this conversion to String should be done with reference
// to the encoding of the cached page, but we don't do that here.
String cachedString = new String(cachedBytes);
System.out.println(cachedString);
}
else if (directive.equalsIgnoreCase("spell"))
{
System.out.println("Spelling suggestion:");
String suggestion = s.doSpellingSuggestion(strLine);
System.out.println(suggestion);
}
else {
printUsageAndExit();
}
}
//Close the input stream
in.close();
}
catch (GoogleSearchFault f) {
System.out.println("The call to the Google Web APIs failed:");
System.out.println(f.toString());
}
catch (Exception e){//Catch exception if any
System.err.println("Error: " + e.getMessage());
}
}
private static void printUsageAndExit() {
System.err.println("Usage: java " +
GoogleAPIDemo.class.getName() +
" <client-key>" +
" (search <query> | cached <url> | spell <phrase>)");
System.exit(1);
}
}
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.