?? googleapi.c
字號:
/* Google Web API Compile and run from the command line: googleapi <key> search|cached|spell <arg> where <key> is the Google API license key (see http://www.google.com/apis) Example: googleapi XXXXXXXX search gSOAPSoftware is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND,either express or implied.Copyright (C) 2002, Robert A. van Engelen, Florida State University.*/#include "soapH.h"#include "googleapi.nsmap"int main(int argc, char **argv){ char *key, *dir, *arg; struct soap soap; soap_init(&soap); soap.disable_href = 1; if (argc <= 3) { fprintf(stderr, "Usage: googleapi <key> search|cached|spell <arg>\n"); return 0; } key = argv[1]; dir = argv[2]; arg = argv[3]; if (!strcmp(dir, "search")) { struct api__doGoogleSearchResponse r; if (soap_call_api__doGoogleSearch(&soap, "http://", "urn:GoogleSearchAction", key, arg, 0, 10, true_, "", false_, "", "latin1", "latin1", &r)) { soap_print_fault(&soap, stderr); exit(-1); } else { int i; printf("documentFiltering = %d\n", (int)r._return.documentFiltering); printf("searchQuery = %s\n", r._return.searchQuery?r._return.searchQuery:"<NONE>"); printf("searchComments = %s\n", r._return.searchComments?r._return.searchComments:"<NONE>"); printf("searchTips = %s\n", r._return.searchTips); printf("searchTime = %f\n", r._return.searchTime); printf("estimatedTotalResultsCount = %d\n", r._return.estimatedTotalResultsCount); printf("estimateIsExact = %d\n", (int)r._return.estimateIsExact); printf("startIndex = %d\n", r._return.startIndex); printf("endIndex = %d\n", r._return.endIndex); printf("resultElements = \n"); for (i = 0; i < r._return.resultElements.__size; i++) { const char *s1 = r._return.resultElements.__ptr[i].summary; const char *s2 = r._return.resultElements.__ptr[i].URL; const char *s3 = r._return.resultElements.__ptr[i].snippet; const char *s4 = r._return.resultElements.__ptr[i].title; const char *s5 = r._return.resultElements.__ptr[i].cachedSize; const char *s6 = r._return.resultElements.__ptr[i].directoryTitle; /* skipped printing of directoryCategory field */ printf("[%3d]\tSummary = %s\n", i+1, s1?s1:"<NONE>"); printf("\ttitle = %s\n", s4?s4:"<NONE>"); printf("\tURL = %s\n", s2?s2:"<NONE>"); printf("\tsnippet = %s\n", s3?s3:"<NONE>"); printf("\tcachedSize = %s\n", s5?s5:"<NONE>"); printf("\trelatedInfo = %d\n", (int)r._return.resultElements.__ptr[i].relatedInformationPresent); printf("\tdirectoryTitle = %s\n", s6?s6:"<NONE>"); } printf("directoryCategories = \n"); for (i = 0; i < r._return.directoryCategories.__size; i++) { const char *s1 = r._return.directoryCategories.__ptr[i].fullViewableName; const char *s2 = r._return.directoryCategories.__ptr[i].specialEncoding; printf("\t%s\t%s\n", s1?s1:"<NONE>", s2?s2:"<NONE>"); } } soap_end(&soap); /* remove all temporary and deserialized data */ } else if (!strcmp(dir, "cached")) { struct xsd__base64Binary r; if (soap_call_api__doGetCachedPage(&soap, "http://api.google.com/search/beta2", "urn:GoogleSearchAction", key, arg, &r)) { soap_print_fault(&soap, stderr); exit(-1); } else { int i; for (i = 0; i < r.__size; i++) putchar(r.__ptr[i]); putchar('\n'); } soap_end(&soap); /* remove all temporary and deserialized data */ } else if (!strcmp(dir, "spell")) { char *r; if (soap_call_api__doSpellingSuggestion(&soap, "http://api.google.com/search/beta2", "urn:GoogleSearchAction", key, arg, &r)) { soap_print_fault(&soap, stderr); exit(-1); } else printf("Suggested spelling: %s\n", r?r:"<NONE>"); soap_end(&soap); /* remove all temporary and deserialized data */ } else { fprintf(stderr, "Unknown directive\n"); return 0; }}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -