Yahoo!検索Webサービス 関連検索ワードのサンプルコード(C#)

Yahoo!関連検索ワードWebサービスを使用するサンプルです。なおこのサンプルを実行するには、xsd.exeにより「/c」オプションで作成されたクラスが必要です*1。このクラスを添付しておきます。

fileWebUnitSearchResponse.cs 502件 [詳細]
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
<%@ Page Language="C#" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<script runat="server">
 
    protected void Button1_Click(object sender, EventArgs e)
    {
        //URLを構築する
        string requestUrl =
            "http://api.search.yahoo.co.jp/AssistSearchService/V1/webunitSearch";
        //アプリケーションIDを指定(必ず指定すること)
        requestUrl += "?appid=XXXXX";
        //クエリー。UTF-8エンコードする。
        requestUrl += "&query=" + Server.UrlEncode(TextBox1.Text);
 
        //HttpWebRequestの作成
        System.Net.HttpWebRequest request =
            (System.Net.HttpWebRequest)System.Net.WebRequest.Create(
            requestUrl);
        System.Net.HttpWebResponse response = null;
        Yahoo.jp.WebUnitSearchResponse.ResultSet res;
        try
        {
            //レスポンスの取得
            response = (System.Net.HttpWebResponse)request.GetResponse();
            System.IO.Stream strm = response.GetResponseStream();
            //サーバーから返されたXMLデータを解析
            //xsd.exeで作成したクラスに逆シリアル化
            System.Xml.Serialization.XmlSerializer serializer =
                new System.Xml.Serialization.XmlSerializer(
                typeof(Yahoo.jp.WebUnitSearchResponse.ResultSet));
            res = (Yahoo.jp.WebUnitSearchResponse.ResultSet)
                serializer.Deserialize(strm);
        }
        catch (Exception ex)
        {
            Label1.Text = "エラー:" + Server.HtmlEncode(ex.Message);
            return;
        }
        finally
        {
            if (response != null)
                response.Close();
        }
 
        //結果を表示
        if (res.Result == null)
        {
            Label1.Text = "見つかりませんでした。";
        }
        else
        {
            Label1.Text = "";
            Label1.Text += "<b>" + Server.HtmlEncode(TextBox1.Text) +
                "</b> の検索結果 約 " +
                res.totalResultsAvailable + "件中 " +
                res.firstResultPosition + " - " +
                res.totalResultsReturned + " 件目<br />\n";
            Label1.Text += "<ul>\n";
            foreach (string r in res.Result)
            {
                Label1.Text += "<li>" + r + "\n";
            }
            Label1.Text += "</ul>\n";
        }
    }
</script>
 
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>Yahoo! 関連検索ワードWebサービス サンプル</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <asp:Button ID="Button1" runat="server"
         OnClick="Button1_Click" Text="送信" /><br />
        <br />
        <asp:Label ID="Label1" runat="server" EnableViewState="False">
        </asp:Label></div>
    </form>
    
<!-- Begin Yahoo! JAPAN Web Services Attribution Snippet -->
<span style="margin:15px 15px 15px 15px">
<a href="http://developer.yahoo.co.jp/about">Webサービス by Yahoo! JAPAN</a>
</span>
<!-- End Yahoo! JAPAN Web Services Attribution Snippet -->
</body>
</html>

ページ情報
  • 作成日 : 2006-09-12 (火) 03:07:03
  • 作成者 : DOBON!
  • 最終編集日 : 2006-09-12 (火) 03:10:09
  • 最終編集者 : DOBON!

*1 現在はYahoo!で公開されているXSDをそのままxsd.exeで変換しようとするとエラーが発生して失敗します。xsd.exeを使う前に修正する必要があります。
[ トップ ]   [ 編集 | 凍結 | 差分 | バックアップ | 添付 | 複製 | 名前変更 | リロード ]   [ 新規 | 子ページ作成 | 一覧 | 単語検索 | 最終更新 | ヘルプ ]