duplicate

笹山のブログです。技術的な記事はLinksからQiitaに飛んでください。

WEB API風にHTTP使ってXMLをGET,POSTするプログラム

RESTfulなAPIというやつを作る。

HTTPで標準的に使えるメソッドであるGET, POSTを用いて、XMLのやり取りを行う。

実験用なので基本的なことしかしていない。

RESTful APIについては以下参照。

参考 : RESTful APIとは何なのか

https://qiita.com/NagaokaKenichi/items/0647c30ef596cedf4bf2

今回はAPIも自作するので、サーバー側でGET, POST要求を受けるAPIと、

クライアント側としてGET, POST要求をするコンソールアプリを作成する。

まずはサーバー側。


Visual Studioで新しいプロジェクトを開始し、

WEBフォームを作成する。

aspxファイルはほとんどいじらず、コードビハインドのaspx.csファイルに以下のように記述する。

GET要求に対してレスポンスしているxmlは以下

このプロジェクトをデバッグ実行すると、

こんな感じ。

無題

このページでブラウザがしているHTTP要求を見ると(IEだと右クリの「検証」→Network→Headersで確認できる)、

Http RequestがGET要求をしているため、xmlを表示していることがわかる。

次にクライアント側。


Visual Studioで新しいプロジェクトを作成して、コンソールアプリケーションを作る。

まずはGET要求を投げるほう。

名前はtestGetClientとでもしよう。

ソースは以下。

localhostデバッグ実行するときは、先に作成したサーバー側のアプリケーションをデバッグ実行しながら。

デバッグすると、コンソールにさっきのxmlが表示され、さらにローカルにそのxmlがシステム日時付の名前で保存される。

続いてPOST要求を投げるコンソールアプリケーションを作成する。

同じソリューション内に新しいプロジェクトでコンソールアプリを作り、以下のソースを記述する。

ここではクライアント側にあるxmlをストリーム読み込みしてPOSTしている。

デバッグすると、コンソールにはPOSTしたレスポンスとして、POSTしたxmlを表示し(若干ややこしい)、

同時にクライアント側にPOSTしたxmlをシステム日時付で保存する(サーバー側に保存するようにしたほうがわかりやすい?)。

ちなみにクライアントからPOSTしているxmlは以下

以上。

最近インディーズゲームにハマりつつある。

ABZUとかFIREWATCHとか。

Everybodys gone to the raptureも面白かったなあ。

ABZUは最近ゲームやっていてまじで声出るほど感動したのでまじでお勧め。

デカイ海洋生物だったり、深海なんかが好きな人には興奮するポイントがたくさんある。

しかも現存する生物だけだと思っていたら、終盤ではまさかの生物が出てきたりするので、ほんと、

ほんともう、やばい。

ストーリーとかはあってないようなものではあるんだけど、画面の美しさだけで泣けるくらいに綺麗なゲームだった。

という近況報告含めてひさびさの更新でした。