.NET Micro FrameworkでWeb ServiceのREST APIにアクセスする方法
はい、表題のやり方を説明します。
.NET Micro Frameworkには、WPFやSilverlightアプリケーション向けの様なWCFサービス参照追加機能はありません。けど大丈夫。RESTのAPIの場合、URIを指定してHTTPでアクセスして、ATOMならXML、JSONならJSON形式でリゾルブすれば、いいですよね。.それらは、通常のPCクライアントアプリでも、HttpWebRequestとHttpWebResponseとか使えば簡単にアクセスできちゃうわけです。で、.NET Micro Frameworkには、これらのクラスがちゃんと用意されているので、それを使えば簡単にREST形式のWeb Serviceにアクセスできちゃいます。
更に、今は、Azure使えばすぐREST Webサービス稼働できるし、FezMini+ネットワークボード買っちゃえばすぐ試せるので、ほんと皆さん試してみてね。
※ちなみに、SOAPの場合は、こちらも基本必要なライブラリ揃っているので、SOAPプロトコルの概要知ってればそれほど難しくない
さて、ではやり方を簡単に説明しておきましょう。
まず、.NET Micro Frameworkのアプリケーションプロジェクトを一つ作ります。
アッセンブリー参照を追加します。アッセンブリーは、c:\Program Files\Microsoft .NET Micro Framework\v4.1\Assembly\le に入っています。
- System.IO
- System.Http
- System.Xml
の3つのアッセンブリーです。
後は、以下のようなコードを書けば、出来上がり
|
レコードのインサートを行うような場合は、GetResponseする前に、reqのContentType(POSTをセット)に値をセットして、送信内容の文字列を作り、System.Text.UTF8Encoding.UTF8のGetBytesメソッドをコールしてバイトデータを作成し、そのバイトデータの長さをContentLengthに代入して、GetRequestStream()で送信用のストリームを取り出し、バイトデータを書き込んでCloseしてから、GetResponseをコールすれば、Okです。
サーバーをEntity Framework、WCF Data Serviceで作ってから、そのクライアントとして上記の方法を試せば、Httpレベルでどんなデータをやり取りしているかの勉強にもなりますよ。