*Yahoo!検索Webサービス 画像検索のサンプルコード(C#) [#o60fc986]

このサンプルを実行するには、xsd.exeにより「/c」オプションで作成されたクラスが必要です。このクラスを添付しておきます。

#attach(noform)

#code(csharp){{
<%@ 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/ImageSearchService/V1/imageSearch";
        //アプリケーションIDを指定(必ず指定すること)
        requestUrl += "?appid=XXXXX";
        //UTF-8エンコード
        requestUrl += "&query=" + Server.UrlEncode(TextBox1.Text);
        //検索の種類
        if (searchType.SelectedValue != "" && searchType.SelectedValue != "all")
            requestUrl += "&type=" + searchType.SelectedValue;
        //表示件数
        if (resultsCount.SelectedValue != "" && resultsCount.SelectedValue != "10")
            requestUrl += "&results=" + resultsCount.SelectedValue;
        //開始位置
        //requestUrl += "&start=" + "1";
        //検索するファイルの種類
        if (fileFormat.SelectedValue != "" && fileFormat.SelectedValue != "any")
            requestUrl += "&format=" + fileFormat.SelectedValue;
        //カラーか白黒か
        if (imageColor.SelectedValue != "" && imageColor.SelectedValue != "any")
            requestUrl += "&coloration=" + imageColor.SelectedValue;
        //アダルトコンテンツを含める
        if (adultOk.Checked)
            requestUrl += "&adult_ok=1";
        //検索するドメインを指定する
        if (searchDomain.Text != "")
            requestUrl += "&site=" + Server.UrlEncode(searchDomain.Text);

        //HttpWebRequestの作成
        System.Net.HttpWebRequest request =
            (System.Net.HttpWebRequest)System.Net.WebRequest.Create(
            requestUrl);
        System.Net.HttpWebResponse response = null;
        Yahoo.jp.ImageSearchResponse.ResultSet res;
        try
        {
            //レスポンスの取得
            response = (System.Net.HttpWebResponse)request.GetResponse();
            System.IO.Stream strm = response.GetResponseStream();
            //サーバーから返されたXMLデータを解析
            System.Xml.Serialization.XmlSerializer serializer =
                new System.Xml.Serialization.XmlSerializer(
                typeof(Yahoo.jp.ImageSearchResponse.ResultSet));
            res = (Yahoo.jp.ImageSearchResponse.ResultSet)
                serializer.Deserialize(strm);
        }
        catch (Exception ex)
        {
            Label1.Text = "エラー:" + Server.HtmlEncode(ex.Message);
            return;
        }
        finally
        {
            if (response != null)
                response.Close();
        }

        //結果表示
        Label1.Text = "";
        if (res.totalResultsReturned == "0")
        {
            Label1.Text += "該当するページが見つかりませんでした。";
        }
        else
        {
            Label1.Text += "<b>" + Server.HtmlEncode(TextBox1.Text) +
                "</b> の検索結果 約 " +
                res.totalResultsAvailable + "件中 " +
                res.firstResultPosition + " - " +
                res.totalResultsReturned + " 件目<br />\n";

            Label1.Text += "<ul>\n";
            foreach (Yahoo.jp.ImageSearchResponse.ResultType item in res.Result)
            {
                //リンクの作成
                Label1.Text += "<li><a href=\"" + item.ClickUrl + "\">";
                //サムネイル画像の表示
                if (item.Thumbnail != null)
                    Label1.Text += "<img src=\"" + item.Thumbnail.Url + "\"><br />";
                //タイトル
                Label1.Text += "<b>" + item.Title + "</b></a>";
                //画像のサイズ
                Label1.Text += "<br />" + item.Width + "x" + item.Height +
                    "・" + item.FileSize + "byte";
                //画像のあるページへのリンク
                Label1.Text += "<br /><a href=\"" + item.RefererUrl +
                    "\">画像元ページへ</a>";
                //サマリー
                if (item.Summary != null && item.Summary.Length > 0)
                    Label1.Text += "<br />" + item.Summary;
                //制限事項
                if (item.Restrictions != null && item.Restrictions.Length > 0)
                    Label1.Text += "<br />" + item.Restrictions;
            }
            Label1.Text += "</ul>\n";
        }
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head 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 />
        キーワードを<asp:CheckBoxList ID="searchType" runat="server"
         RepeatDirection="Horizontal"
            RepeatLayout="Flow">
            <asp:ListItem Selected="True" Value="all">すべて含む
            </asp:ListItem>
            <asp:ListItem Value="any">少なくとも1つ含む</asp:ListItem>
            <asp:ListItem Value="phrase">文章として含む</asp:ListItem>
        </asp:CheckBoxList><br />
        表示件数 :
        <asp:DropDownList ID="resultsCount" runat="server">
            <asp:ListItem Value="10">10件</asp:ListItem>
            <asp:ListItem Value="25">25件</asp:ListItem>
            <asp:ListItem Value="50">50件</asp:ListItem>
        </asp:DropDownList><br />
        ファイル形式 :
        <asp:DropDownList ID="fileFormat" runat="server">
            <asp:ListItem Value="any">すべてのファイル形式</asp:ListItem>
            <asp:ListItem>bmp</asp:ListItem>
            <asp:ListItem>gif</asp:ListItem>
            <asp:ListItem>jpeg</asp:ListItem>
            <asp:ListItem>png</asp:ListItem>
        </asp:DropDownList><br />
        画像の色 :
        <asp:CheckBoxList ID="imageColor" runat="server"
         RepeatDirection="Horizontal" RepeatLayout="Flow">
            <asp:ListItem Selected="True" Value="any">すべて</asp:ListItem>
            <asp:ListItem Value="color">カラー</asp:ListItem>
            <asp:ListItem Value="bw">白黒・グレースケール</asp:ListItem>
        </asp:CheckBoxList><br />
        <asp:CheckBox ID="adultOk" runat="server"
         Text="アダルトコンテンツを含める" /><br />
        ドメイン :
        <asp:TextBox ID="searchDomain" runat="server"></asp:TextBox><br />
        <br />
        <asp:Label ID="Label1" runat="server" EnableViewState="False">
        </asp:Label>
        <span style="color: #0000ff; text-decoration: underline">
        </span>

<!-- 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 -->
    </div>
    </form>
</body>
</html>
}}

//これより下は編集しないでください
#pageinfo(,2006-09-12 (火) 02:51:50,DOBON!,2006-09-12 (火) 02:51:50,DOBON!)

[ トップ ]   [ 編集 | 差分 | バックアップ | 添付 | 複製 | 名前変更 | リロード ]   [ 新規 | 子ページ作成 | 一覧 | 単語検索 | 最終更新 | ヘルプ ]