avhttp v2.9.8 發布,HTTP 客戶端開發庫
avhttp是一個基于Boost.Asio實現的HTTP客戶端開發工具庫.
簡介
它支持HTTP(1.0/1.1)、HTTPS, 斷點續傳, 多線程并發下載, 異步, HTTP/SOCKS4/SOCKS5代理支持等特性, 開發者可以輕松的基于這個庫開發其他相關應用.
快速上手
#include <iostream>
include <boost/array.hpp>
include "avhttp.hpp"
int main()
{
boost::asio::io_service io;
avhttp::http_stream h(io);
boost::system::error_code ec;
// 打開url.
h.open("http://www.boost.org/LICENSE_1_0.txt", ec);
if (ec) { // 打開失敗處理...
std::cout << "Error: " << ec.message() << std::endl;
return -1;
}
boost::array<char, 1024> buf;
// 循環讀取數據.
while (!ec) {
std::size_t bytes_transferred = h.read_some(boost::asio::buffer(buf), ec);
// 將下載的數據打印到屏幕.
std::cout.write(buf.data(), bytes_transferred);
}
std::cout.flush();
h.close(ec); // 關閉.
io.run();
return 0;
}</pre>
</span></span>OK, 上面已經展示了一個簡單卻功能完善的示例用于HTTP下載, 但事實上有時您需要定制自己的HTTP請求, 請繼續往下看, 下面介紹HTTP參數相關的設置. </h5>
使用request_opts定制HTTP請求</span>
boost::asio::io_service io;
avhttp::http_stream h(io);
avhttp::request_opts opt;
// 可以insert多個選項.
opt.insert("Connection", "Keep-Alive");
// 在這里設置到request_options.
h.request_options(opt);
// 然后再發起其它相關操作.
h.open("
avhttp::request_opts 在發起HTTP請求之前的設定HTTP選項, 它可以實現讓您定制自己的http header.
使用avhttp::proxy_settings設置代理</span>
boost::asio::io_service io;
avhttp::http_stream h(io);
avhttp::proxy_settings p;
// 這里可以設置3種代理, socks4/socks5/http, 具體可以查看avhttp::proxy_settings的聲明.
p.type = avhttp::proxy_settings::http;
p.hostname = "127.0.0.1";
p.port = 8080;
h.proxy(p); // 設置代理.
avhttp v2.9.8 版本發布!主要改進包括:
1.增加了cookie管理。
2.基于RFC1867的HTTP文件上傳功能(支持異步/同步)。
3.支持獨立編譯選項。
4.改善了解析HTTP DATE和修正了一些編譯錯誤(vc/mingw平臺)。
5.提供了一個實用于上傳圖片到http://imagebin.org的example.
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!
include <boost/array.hpp>
include "avhttp.hpp"
int main() { boost::asio::io_service io; avhttp::http_stream h(io); boost::system::error_code ec;
// 打開url.
h.open("http://www.boost.org/LICENSE_1_0.txt", ec);
if (ec) { // 打開失敗處理...
std::cout << "Error: " << ec.message() << std::endl;
return -1;
}
boost::array<char, 1024> buf;
// 循環讀取數據.
while (!ec) {
std::size_t bytes_transferred = h.read_some(boost::asio::buffer(buf), ec);
// 將下載的數據打印到屏幕.
std::cout.write(buf.data(), bytes_transferred);
}
std::cout.flush();
h.close(ec); // 關閉.
io.run();
return 0;
}</pre>
</span></span>OK, 上面已經展示了一個簡單卻功能完善的示例用于HTTP下載, 但事實上有時您需要定制自己的HTTP請求, 請繼續往下看, 下面介紹HTTP參數相關的設置. </h5>
使用request_opts定制HTTP請求</span>
boost::asio::io_service io;
avhttp::http_stream h(io);
avhttp::request_opts opt;
// 可以insert多個選項.
opt.insert("Connection", "Keep-Alive");
// 在這里設置到request_options.
h.request_options(opt);
// 然后再發起其它相關操作.
h.open("
avhttp::request_opts 在發起HTTP請求之前的設定HTTP選項, 它可以實現讓您定制自己的http header.
使用avhttp::proxy_settings設置代理</span>
boost::asio::io_service io;
avhttp::http_stream h(io);
avhttp::proxy_settings p;
// 這里可以設置3種代理, socks4/socks5/http, 具體可以查看avhttp::proxy_settings的聲明.
p.type = avhttp::proxy_settings::http;
p.hostname = "127.0.0.1";
p.port = 8080;
h.proxy(p); // 設置代理.
avhttp v2.9.8 版本發布!主要改進包括:
1.增加了cookie管理。
2.基于RFC1867的HTTP文件上傳功能(支持異步/同步)。
3.支持獨立編譯選項。
4.改善了解析HTTP DATE和修正了一些編譯錯誤(vc/mingw平臺)。
5.提供了一個實用于上傳圖片到http://imagebin.org的example.
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!
avhttp::request_opts opt; // 可以insert多個選項. opt.insert("Connection", "Keep-Alive");
// 在這里設置到request_options. h.request_options(opt);
// 然后再發起其它相關操作.
h.open("
avhttp::request_opts 在發起HTTP請求之前的設定HTTP選項, 它可以實現讓您定制自己的http header.
使用avhttp::proxy_settings設置代理</span>
boost::asio::io_service io;
avhttp::http_stream h(io);
avhttp::proxy_settings p;
// 這里可以設置3種代理, socks4/socks5/http, 具體可以查看avhttp::proxy_settings的聲明.
p.type = avhttp::proxy_settings::http;
p.hostname = "127.0.0.1";
p.port = 8080;
h.proxy(p); // 設置代理.
avhttp v2.9.8 版本發布!主要改進包括:
1.增加了cookie管理。
2.基于RFC1867的HTTP文件上傳功能(支持異步/同步)。
3.支持獨立編譯選項。
4.改善了解析HTTP DATE和修正了一些編譯錯誤(vc/mingw平臺)。
5.提供了一個實用于上傳圖片到http://imagebin.org的example.
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!
avhttp::proxy_settings p; // 這里可以設置3種代理, socks4/socks5/http, 具體可以查看avhttp::proxy_settings的聲明. p.type = avhttp::proxy_settings::http; p.hostname = "127.0.0.1"; p.port = 8080; h.proxy(p); // 設置代理.
avhttp v2.9.8 版本發布!主要改進包括:
1.增加了cookie管理。
2.基于RFC1867的HTTP文件上傳功能(支持異步/同步)。
3.支持獨立編譯選項。
4.改善了解析HTTP DATE和修正了一些編譯錯誤(vc/mingw平臺)。
5.提供了一個實用于上傳圖片到http://imagebin.org的example.