Calbee ポテトチップス ペッパー
非常にシンプルま味ですが,黒胡椒がピリッときて良い感じです.
ホントにシンプルで,原材料名は「ブラックペッパー」「食塩」「糖類(砂糖,オリゴ糖)」「チキンエキスパウダー(乳を含む)」「オニオンパウダー」「ガーリックパウダー」等です.
確かに表面に,ブラックペッパーらしき黒い香辛料が見えます.
POCOで簡単Webアクセス
POCOというC++用のライブラリ,とても面白いです.
POCO C++ Libraries - Simplify C++ Development
インストールも簡単で,make一発です.ただ,簡単ということはカスタマイズ性が低く,例えば現状ではicc(Intel C Compiler)で作ることができません.
でも,構造が美しくて分かりやすく,私にはRubyの便利な添付クラスライブラリのような印象を受けました.Rubyはネットワークプログラミングも得意なので,ずいぶん色々なアプリやロボット(クローラ)も作ってみましたが,POCOでも同様に簡単に色々なことができそうです.
試しに,Yahoo!のトップページを取ってきて,ヘッダとボディのHTMLを標準出力に表示するサンプルを書いてみました.
#include <iostream> #include <Poco/Net/HTTPClientSession.h> #include <Poco/Net/StreamSocket.h> #include <Poco/Net/SocketAddress.h> #include <Poco/Net/HTTPRequest.h> #include <Poco/Net/HTTPResponse.h> using namespace std; int main() { Poco::Net::HTTPClientSession client("www.yahoo.co.jp",80); // アクセス先の設定 Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_GET, "/"); // アクセス方法の設定 Poco::Net::HTTPResponse response; // 結果を受け取る箱の準備 ostream &req = client.sendRequest(request); // アクセスする istream &res = client.receiveResponse(response); // 結果を取得する int len = response.getContentLength(); // ヘッダのContent-Lengthを取得する char *resbody = new char[len+1]; // ボディのHTMLを入れる領域を確保する response.write(cout); // HTTPヘッダを出力する res.read(resbody,len); // HTMLボディを取得する cout<<resbody<<endl; // HTMLボディを出力する return(0); }
20行ちょいで書けました.
ソケット通信の知識も必要ありません(それが良いのかって話はありますが...).
もちろん,ナマのソケット通信のプログラムを書くためのクラスも入っています.