http.h (HTTPクライアント)
C++で簡単にHTTPを使うためのヘッダファイル.HTTPクライアントクラスの他にurlエンコード・デコード関数が入っています.
利用の制限はありません.各自の責任にて自由にご利用ください.
ライセンス的にはNYSLということにします.
特徴
- includeするだけで使えます
- STLとsocket.hだけあれば動きます
- 簡単・低機能
サンプル
やる気ないサンプル.
#include <iostream> #include "http.h" using namespace std; using namespace Net; int main(int argc,int argv[]) { HttpClient hc; cout << hc.get_content("http://www.binzume.net/diary/") << endl; return 0; }
POSTも簡単.微妙にCookie対応してますが,あまり使い物になりません.
map<string,string> postdata; postdata["user"] = "binzume"; postdata["passwd"] = "asdfghj"; HttpResponse res = hc.post("http://www.binzume.net/?login", postdata); cout << hc.cookie << endl; cout << res.content << endl;
使い方
ヘッダファイルなのでincludeするだけです.何もたいしたことやってないので,ソースを見てください.ブロッキングするのでthread.hとかと合わせて使ってください.
HttpClient
- string get_content(url) 取得
- HttpResponse get(url,params)
- HttpResponse post(url,params)
- Socket request(url,postdata) Socketが返ります(ヘッダは読み込み済み)
- clear() cookie等をクリア
- req_header リクエストヘッダ(map<string,string>)
header周りは変わるかもしれません.
HttpResponse
- status ステータスコード
- headers レスポンスヘッダ
- content 内容
バグ
- Cookieはホストやpathや有効期限も無視されます.2つ目以降のSet-Cookieも無効
- POSTはapplication/x-www-form-urlencodedにしか対応していません
- ファイルのアップロードにもいつか対応したい
履歴
- 2009-07-22 公開
- 2010-06-30 cookie仮対応,postとgetでメソッドを分離,バグ修正
Copyright © binzume all rights reserved.