Makale Özeti
JQuery AutoComplete gibi farklı özelliklerden yararlanıyor olabilirsiniz. Böylesi durumlarda genelde kendi verilerimizi kullanırız. Fakat bu sefer biraz farklılık yaparak Google’ın Suggest değerlerini çekelim.
Makale
JQuery AutoComplete gibi farklı özelliklerden yararlanıyor olabilirsiniz. Böylesi durumlarda genelde kendi verilerimizi kullanırız. Fakat bu sefer biraz farklılık yaparak
Google’ın Suggest değerlerini çekelim.
Yaptığım araştırmaya göre Google bizlere
http://clients1.google.com/complete/search?hl=tr&output=toolbar&q=test böyle bir servis sağlıyor. Burada
QueryStringlere dikkat ederseniz
hl ve
g adında parametreler mevcut. Burada
hl hangi dil sonuçlarında arama yapacağını ve
g de hangi kelimeyi arayacağını ifade etmektedir. Biz de kod tarafında bu sayfaya dil ve kelimeyi ileterek Google’ın sağladığı değerlere ulaşabiliriz.
Örnek olarak böyle bir tablo oluşturdum. Buradan girilen kelime ve seçilen dile göre Google Suggestdeğerlerinin getirilmesi sağlanıyor.
Aşağıdaki kodlar ekran görüntüsündeki tasarımını oluşturmaktadır. Bu tasarımdaki atanan eventlara göre Code Behind tarafında işlemler gerçekleştirilecektir.
07 | <asp:TextBox ID= "txtKelimeGir" Width= "200" runat= "server" ></asp:TextBox> |
15 | <asp:DropDownList ID= "drpDil" Width= "200" runat= "server" > |
16 | <asp:ListItem Selected= "true" Text= "Türkçe" Value= "tr" ></asp:ListItem> |
17 | <asp:ListItem Text= "İngilizce" Value= "en" ></asp:ListItem> |
22 | <td colspan= "2" align= "right" > |
23 | <asp:Button ID= "btnGoogleSuggest" OnClick= "btnGoogleSuggest_Click" runat= "server" Text= "Değerleri Getir" /> |
31 | <asp:Literal ID= "lblXml" runat= "server" ></asp:Literal> |
Ve en son Code Behind tarafında Google Suggest değerlerini çekiyoruz. Google servisini xml olarak çekmeye çalıştığımda karakter uyuşmazlıkları çok sık yaşadığım için gidilen sayfanın kaynak kodunu alıp xml formatında tanıtmayı tercih ettim. Açıklama satırlarında yapılan işlemler daha detaylı olarak anlatılmaktadır.
01 | protected void btnGoogleSuggest_Click( object sender, EventArgs e) |
03 | //DropDownliste seçilen dilin değeri alınır. |
04 | string dil = drpDil.SelectedValue; |
05 | //TextBoxa girilen değer alınır. |
06 | string kelime = txtKelimeGir.Text; |
07 | //Google Suggest Değelerini içeren Labelı ilk başta temizliyoruz. |
09 | /*Burada Google Suggest değerlerini içeren servisin kaynak kodunu alıyoruz. |
10 | * Xml olarak çekerken eşleşmeyen karakterler olduğu için böyle bir yol izliyoruz. |
13 | WebResponse cevap = istek.GetResponse(); |
14 | StreamReader donenBilgiler = new StreamReader(cevap.GetResponseStream()); |
15 | string html = donenBilgiler.ReadToEnd(); |
17 | XmlDocument xdoc = new XmlDocument(); |
18 | //Tüm sayfayı çektiğimiz için sayfanın kaynak kodunu xml olarak yüklenmesi sağlıyoruz. |
20 | XmlNodeList nodeList = xdoc.SelectNodes( "toplevel/CompleteSuggestion/suggestion" ); |
21 | //Burada alınan nodeları döngüye alıyoruz. |
22 | foreach (XmlNode item in nodeList) |
24 | //Alınan nodeların data Attributes değerini tek tek labela yazdırıyoruz. |
25 | lblXml.Text += item.Attributes[ "data" ].InnerText + "<br>" ; |