2011-11-07 215 views

回答

3

看看API Reference 使用代碼google-api-dotnet-client

CustomsearchService svc = new CustomsearchService(); 

string json = File.ReadAllText("jsonfile",Encoding.UTF8); 
Search googleRes = null; 
ISerializer des = new NewtonsoftJsonSerializer(); 
googleRes = des.Deserialize<Search>(json); 

CustomsearchService svc = new CustomsearchService(); 

Search googleRes = null; 
ISerializer des = new NewtonsoftJsonSerializer(); 
using (var fileStream = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) 
{ 
    googleRes = des.Deserialize<Search>(fileStream); 
} 

與流也可以讀出的webClientHttpRequest,如你所願

+0

您的「API參考」鏈接已死亡... – billy

4

首先, ,您需要確保您已經生成了您的API密鑰和CX。我假設你已經做了已經,否則,你可以在這些地方做:

  • API Key(你需要創建一個新的瀏覽器密鑰)
  • CX(你需要創建一個自定義搜索引擎)

一旦你擁有了這些,這裏是執行搜索和轉儲所有的標題/鏈接一個簡單的控制檯應用程序:

static void Main(string[] args) 
{ 
    WebClient webClient = new WebClient(); 

    string apiKey = "YOUR KEY HERE"; 
    string cx = "YOUR CX HERE"; 
    string query = "YOUR SEARCH HERE"; 

    string result = webClient.DownloadString(String.Format("https://www.googleapis.com/customsearch/v1?key={0}&cx={1}&q={2}&alt=json", apiKey, cx, query)); 
    JavaScriptSerializer serializer = new JavaScriptSerializer(); 
    Dictionary<string, object> collection = serializer.Deserialize<Dictionary<string, object>>(result); 
    foreach (Dictionary<string, object> item in (IEnumerable)collection["items"]) 
    { 
     Console.WriteLine("Title: {0}", item["title"]); 
     Console.WriteLine("Link: {0}", item["link"]); 
     Console.WriteLine(); 
    } 
} 

由於你可以看到,我將一個通用的JSON反序列化轉換爲一個字典,而不是強類型的。這是爲了方便,因爲我不想創建一個實現搜索結果模式的類。採用這種方法,有效載荷是嵌套的鍵值對集合。你最感興趣的是項目集合,這是搜索結果(我假設的第一頁)。我只能訪問「標題」和「鏈接」屬性,但還有很多可以從文檔中看到或在調試器中檢查。

+1

我正在尋找如何使用[Google API的.NET客戶端庫](http://code.google.com/p/google-api-dotnet-客戶端/ wiki/API#CustomSearch_API)。無論如何thanx ..這也有幫助。 – Darshana

6

我的不好,我的第一個答案是沒有使用Google API。

作爲一個先決條件,你需要得到Google API client library

(特別是,你將需要引用Google.Apis.dll在您的項目)。現在,假設你有你的API密鑰和CX,這裏是得到的結果相同的代碼,但是現在使用實際的API:

string apiKey = "YOUR KEY HERE"; 
string cx = "YOUR CX HERE"; 
string query = "YOUR SEARCH HERE"; 

Google.Apis.Customsearch.v1.CustomsearchService svc = new Google.Apis.Customsearch.v1.CustomsearchService(); 
svc.Key = apiKey; 

Google.Apis.Customsearch.v1.CseResource.ListRequest listRequest = svc.Cse.List(query); 
listRequest.Cx = cx; 
Google.Apis.Customsearch.v1.Data.Search search = listRequest.Fetch(); 

foreach (Google.Apis.Customsearch.v1.Data.Result result in search.Items) 
{ 
    Console.WriteLine("Title: {0}", result.Title); 
    Console.WriteLine("Link: {0}", result.Link); 
} 
相關問題