⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 yahoosearchservice.cs

📁 Yahoo!search API. 用于搜索引擎接口
💻 CS
字号:
using System;
using System.IO;
using System.Net;
using System.Text;
using System.Web;
using System.Xml.Serialization;

namespace Yahoo.API
{
	/// <summary>
	/// YahooSearchService wrappes calls to the Yahoo Web Service.
	/// </summary>
	public class YahooSearchService
	{
		private const string _searchYahooApiAddress = "http://search.yahooapis.com/";
		private const string _localYahooApiAddress = "http://local.yahooapis.com/";

		public Yahoo.API.TermExtractionResponse.ResultSet TermExtraction(string appId, string query, string context)
		{
			// Set the uri to send the request to
			string requestUri = _searchYahooApiAddress + "ContentAnalysisService/V1/termExtraction";

			// Create the request object
			HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUri);
			
			// As the context parameter may be quite long
            // we will use a POST request
			request.Method = "POST";
			request.ContentType = "application/x-www-form-urlencoded";
			using (StreamWriter sw = new StreamWriter(request.GetRequestStream()))
			{
				sw.Write("appid={0}&context={1}&query={2}", appId, context, query);
			}

			Yahoo.API.TermExtractionResponse.ResultSet resultSet = null;

			// Get the response from Yahoo
			using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
			{
				using (Stream responseStream = response.GetResponseStream())
				{
					// Convert the response into an object model
					XmlSerializer serializer = new XmlSerializer(typeof(Yahoo.API.TermExtractionResponse.ResultSet));
					resultSet = (Yahoo.API.TermExtractionResponse.ResultSet)serializer.Deserialize(responseStream);
				}
			}

			return resultSet;
		}

		public Yahoo.API.ImageSearchResponse.ResultSet ImageSearch(string appId, string query, string type, short results, int start, string format, bool adultOk)
		{
			string requestUri = String.Format(_searchYahooApiAddress + "ImageSearchService/V1/imageSearch?appid={0}&query={1}&type={2}&results={3}&start={4}&format={5}&adult_ok={6}", appId, query, type, results, start, format, adultOk ? "1" : "0");

			HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUri);

			Yahoo.API.ImageSearchResponse.ResultSet resultSet = null;
			using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
			{
				using (Stream responseStream = response.GetResponseStream())
				{
					XmlSerializer serializer = new XmlSerializer(typeof(Yahoo.API.ImageSearchResponse.ResultSet));
					resultSet = (Yahoo.API.ImageSearchResponse.ResultSet)serializer.Deserialize(responseStream);
				}
			}

			return resultSet;
		}

		public Yahoo.API.LocalSearchResponse.ResultSet LocalSearch(string appId, string query, short results, int start, float radius, string street, string city, string state, string zip, string location)
		{
			string requestUri = String.Format(_localYahooApiAddress + "LocalSearchService/V1/localSearch?appid={0}&query={1}&results={2}&start={3}&radious={4}&street={5}&city={6}&state={7}&zip={8}&location={9}", appId, query, results, start, radius, street, city, state, zip, location);

			HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUri);

			Yahoo.API.LocalSearchResponse.ResultSet resultSet = null;
			using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
			{
				using (Stream responseStream = response.GetResponseStream())
				{
					XmlSerializer serializer = new XmlSerializer(typeof(Yahoo.API.LocalSearchResponse.ResultSet));
					resultSet = (Yahoo.API.LocalSearchResponse.ResultSet)serializer.Deserialize(responseStream);
				}
			}

			return resultSet;
		}

		public Yahoo.API.LocalSearchResponse2.ResultSet LocalSearch2(string appId, string query, short results, int start, string sort, float radius, string street, string city, string state, string zip, string location, float latitude, float longitude)
		{
			string requestUri = String.Format(_localYahooApiAddress + "LocalSearchService/V2/localSearch?appid={0}&query={1}&results={2}&start={3}&sort={4}&radious={5}&street={6}&city={7}&state={8}&zip={9}&location={10}&latitude={11}&longitude={12}&output=xml", appId, query, results, start, sort, radius, street, city, state, zip, location, latitude, longitude);

			HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUri);

			Yahoo.API.LocalSearchResponse2.ResultSet resultSet = null;
			using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
			{
				using (Stream responseStream = response.GetResponseStream())
				{
					XmlSerializer serializer = new XmlSerializer(typeof(Yahoo.API.LocalSearchResponse2.ResultSet));
					resultSet = (Yahoo.API.LocalSearchResponse2.ResultSet)serializer.Deserialize(responseStream);
				}
			}

			return resultSet;
		}

		public Yahoo.API.NewsSearchResponse.ResultSet NewsSearch(string appId, string query, string type, short results, int start, string sort, string language)
		{
			string requestUri = String.Format(_searchYahooApiAddress + "NewsSearchService/V1/newsSearch?appid={0}&query={1}&type={2}&results={3}&start={4}&sort={5}&language={6}", appId, HttpUtility.UrlEncode(query, Encoding.UTF8), type, results, start, sort, language);

			HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUri);

			Yahoo.API.NewsSearchResponse.ResultSet resultSet = null;
			using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
			{
				using (Stream responseStream = response.GetResponseStream())
				{
					XmlSerializer serializer = new XmlSerializer(typeof(Yahoo.API.NewsSearchResponse.ResultSet));
					resultSet = (Yahoo.API.NewsSearchResponse.ResultSet)serializer.Deserialize(responseStream);
				}
			}

			return resultSet;
		}

		public Yahoo.API.VideoSearchResponse.ResultSet VideoSearch(string appId, string query, string type, short results, int start, string format, bool adultOk)
		{
			string requestUri = String.Format(_searchYahooApiAddress + "VideoSearchService/V1/videoSearch?appid={0}&query={1}&type={2}&results={3}&start={4}&format={5}&adult_ok={6}", appId, HttpUtility.UrlEncode(query, Encoding.UTF8), type, results, start, format, adultOk  ? "1" : "0");

			HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUri);

			Yahoo.API.VideoSearchResponse.ResultSet resultSet = null;
			using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
			{
				using (Stream responseStream = response.GetResponseStream())
				{
					XmlSerializer serializer = new XmlSerializer(typeof(Yahoo.API.VideoSearchResponse.ResultSet));
					resultSet = (Yahoo.API.VideoSearchResponse.ResultSet)serializer.Deserialize(responseStream);
				}
			}

			return resultSet;
		}

		public Yahoo.API.WebSearchRelatedResponse.ResultSet WebSearchRelated(string appId, string query, short results)
		{
			string requestUri = String.Format(_searchYahooApiAddress + "WebSearchService/V1/relatedSuggestion?appid={0}&query={1}&results={2}", appId, HttpUtility.UrlEncode(query, Encoding.UTF8), results);

			HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUri);

			Yahoo.API.WebSearchRelatedResponse.ResultSet resultSet = null;
			using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
			{
				using (Stream responseStream = response.GetResponseStream())
				{
					XmlSerializer serializer = new XmlSerializer(typeof(Yahoo.API.WebSearchRelatedResponse.ResultSet));
					resultSet = (Yahoo.API.WebSearchRelatedResponse.ResultSet)serializer.Deserialize(responseStream);
				}
			}

			return resultSet;
		}

		public Yahoo.API.WebSearchResponse.ResultSet WebSearch(string appId, string query, string type, short results, int start, string format, bool adultOk, bool similarOk, string language)
		{
			string requestUri = String.Format(_searchYahooApiAddress + "WebSearchService/V1/webSearch?appid={0}&query={1}&type={2}&results={3}&start={4}&format={5}&adult_ok={6}&similar_ok={7}&language={8}", appId, HttpUtility.UrlEncode(query, Encoding.UTF8) , type, results, start, format, adultOk ? "1" : "0", similarOk ? "1" : "0", language);

			HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUri);

			Yahoo.API.WebSearchResponse.ResultSet resultSet = null;
			using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
			{
				using (Stream responseStream = response.GetResponseStream())
				{
					XmlSerializer serializer = new XmlSerializer(typeof(Yahoo.API.WebSearchResponse.ResultSet));
					resultSet = (Yahoo.API.WebSearchResponse.ResultSet)serializer.Deserialize(responseStream);
				}
			}

			return resultSet;
		}

		public Yahoo.API.WebSearchSpellingResponse.ResultSet WebSearchSpelling(string appId, string query)
		{
			string requestUri = String.Format(_searchYahooApiAddress + "WebSearchService/V1/spellingSuggestion?appid={0}&query={1}", appId, HttpUtility.UrlEncode(query, Encoding.UTF8));

			HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUri);

			Yahoo.API.WebSearchSpellingResponse.ResultSet resultSet = null;
			using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
			{
				XmlSerializer serializer = new XmlSerializer(typeof(Yahoo.API.WebSearchSpellingResponse.ResultSet));
				resultSet = (Yahoo.API.WebSearchSpellingResponse.ResultSet)serializer.Deserialize(response.GetResponseStream());
			}

			return resultSet;
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -