Adsense_top

2009年7月15日水曜日

C# Twitter API 汎用性を上げて、検索をしてみる

前回などに使ったAPIの実行部分を、使い回しが利くように変更しました。

//
// APIを使用し応答を返す
//
private string Execute(string url, HttpMethod method,
string user, string pass, params string[] parameters)
{
StringBuilder paramBuilder = new StringBuilder();
if (parameters != null)
{
foreach (string param in parameters)
{
if (paramBuilder.Length > 0)
paramBuilder.Append("&");
paramBuilder.Append(param);
}
}
HttpWebRequest request =
(HttpWebRequest)HttpWebRequest.Create(url);
request.Method =
Enum.GetName(typeof(HttpMethod), method);
request.Credentials =
new NetworkCredential(user, pass);
request.ContentType = "application/x-www-form-urlencoded";
//request.UserAgent = "arayan's Twitter Client";
request.Timeout = 10000;
ServicePointManager.Expect100Continue = false;
StreamWriter writer =
new StreamWriter(request.GetRequestStream());
if(paramBuilder.Length > 0)
writer.Write(paramBuilder.ToString());
writer.Close();
WebResponse response = request.GetResponse();
StreamReader reader =
new StreamReader(response.GetResponseStream());
string result = reader.ReadToEnd();
reader.Close();
response.Close();
return result;
}

private enum HttpMethod
{
POST,
GET,
DELETE
}

以下のように呼び出します。
例は「search」APIで「C#」を含む「日本語」の投稿を取得します。
「userid」「password」には、認証に使用するユーザーIDとパスワードを設定ます。

string[] parameters = new string[]{
"q=" + HttpUtility.UrlEncode("C#", Encoding.UTF8)),
"lang=" + HttpUtility.UrlEncode("ja", Encoding.UTF8))
};
string result =
Execute("http://search.twitter.com/search.json",
HttpMethod.GET, userid, password, parameters);


このエントリーの「Execute」メソッドが間違えていました。詳細は次のエントリーをご覧下さい。

0 件のコメント:

コメントを投稿