V alentine
B ooks
ヴァレンタイン書店

●VisualStudioの紹介

●画面プログラムの作り方

●コンソールプログラムの作り方

●DBプログラムの作り方(SELECT)

●DBプログラムの作り方(INSERT)

●DBプログラムの作り方(UPDATE)

●DBプログラムの作り方(DELETE)

●DB最適化

●AmazonMWSの使用方法

●YahooAPIの使用方法

●楽天APIの使用方法

●Webからのデータ取得方法

●レジストリを利用した利用者認証機能

●プログラム間の値の引継ぎ方法

●プログラム実行パスの取得

●デバッグ方法

●ショートカットキー

●設定

●64ビットOS対応

●ヴァレンタイン書店Web支店

●店長ブログ

                                        

C#からYahooショッピングAPIを利用する際のサンプルを載せておきます。
Yahooの公式サイトからはC#のサンプルは提供されていないため、サンプルを探すとなると
個人が作ったサイトを参考にするしかありません。
とはいえ、どのAPIを使用するにも同じような処理パターンで動かせるため、
一つサンプルを入手すればどのAPIにも応用可能です。

1点注意すべきポイントはAPIによってGETメソッドでリクエストを投げるか、
POSTメソッドでリクエストを投げるかが異なってくるということです。

たとえばYahooショッピングの商品検索APIではGETでリクエストを投げる必要がありますが、
Yahooオークションの商品リストAPIではGETまたはPOSTでリクエストを投げる事が可能です。

Yahooショッピング商品検索API

Yahooオークション商品リストAPI

C#でYahooショッピングAPI利用 サンプル
1  //解析する文字列はURLエンコードする
2  String postString = String.Format("appid={0}&query={1}",
3    "xxxx",
4    HttpUtility.UrlEncode("ワンピースコレクション 変わらぬ夢と誓いスペシャル 12個入 BOX (食玩)"));
5  
6  //UTF8でバイト配列にエンコードする
7  byte[] postData = Encoding.UTF8.GetBytes(postString);
8  string encstr = Encoding.GetEncoding("UTF-8").GetString(postData);
9  
10 //Webリクエストを生成する
11 WebRequest webReq = WebRequest.Create("http://shopping.yahooapis.jp/ShoppingWebService/V1/itemSearch?" + encstr);
12 
13 webReq.Method = "GET";
14 webReq.ContentType = "application/x-www-form-urlencoded";
15 
16 
17 //結果をうけとってDOMオブジェクトにする
18 WebResponse webRes = webReq.GetResponse();
19 
20 XmlDocument resultXml = new XmlDocument();
21 
22 using (StreamReader reader = new StreamReader(webRes.GetResponseStream()))
23 {
24     resultXml.Load(reader);
25 }
26 
27 //結果XML中の[word]タグのリストを取得する
28 XmlNodeList wordList = resultXml.GetElementsByTagName("Item");
29 
30 //[word]以下のノードに含まれる内容をコンソールに出力する
31 foreach (XmlNode wordNode in wordList)
32 {
33     foreach (XmlNode resultNode in wordNode.ChildNodes)
34     {
35         Console.WriteLine("node_name:{0} value:{1}", resultNode.Name, resultNode.InnerText);
36     }
37 }