2019-09-20 18:39:40 +02:00
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2018-06-07 19:28:24 +02:00
< html xmlns = "http://www.w3.org/1999/xhtml" >
< head >
< meta http-equiv = "Content-Type" content = "text/xhtml;charset=UTF-8" / >
< meta http-equiv = "X-UA-Compatible" content = "IE=9" / >
2019-09-20 18:39:40 +02:00
< meta name = "generator" content = "Doxygen 1.8.15" / >
2018-06-07 19:28:24 +02:00
< meta name = "viewport" content = "width=device-width, initial-scale=1" / >
< title > mastodon-cpp: Mastodon::API::http Class Reference< / title >
< link href = "tabs.css" rel = "stylesheet" type = "text/css" / >
< script type = "text/javascript" src = "jquery.js" > < / script >
< script type = "text/javascript" src = "dynsections.js" > < / script >
< link href = "doxygen.css" rel = "stylesheet" type = "text/css" / >
< / head >
< body >
< div id = "top" > <!-- do not remove this div, it is closed by doxygen! -->
< div id = "titlearea" >
< table cellspacing = "0" cellpadding = "0" >
< tbody >
< tr style = "height: 56px;" >
< td id = "projectalign" style = "padding-left: 0.5em;" >
< div id = "projectname" > mastodon-cpp
2019-09-20 18:39:40 +02:00
  < span id = "projectnumber" > 0.110.0< / span >
2018-06-07 19:28:24 +02:00
< / div >
< / td >
< / tr >
< / tbody >
< / table >
< / div >
<!-- end header part -->
2019-09-20 18:39:40 +02:00
<!-- Generated by Doxygen 1.8.15 -->
2018-06-07 19:28:24 +02:00
< script type = "text/javascript" src = "menudata.js" > < / script >
< script type = "text/javascript" src = "menu.js" > < / script >
< script type = "text/javascript" >
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3& dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
/* @license-end */< / script >
< div id = "main-nav" > < / div >
< div id = "nav-path" class = "navpath" >
< ul >
2019-04-14 06:36:34 +02:00
< li class = "navelem" > < a class = "el" href = "namespaceMastodon.html" > Mastodon< / a > < / li > < li class = "navelem" > < a class = "el" href = "classMastodon_1_1API.html" > API< / a > < / li > < li class = "navelem" > < a class = "el" href = "classMastodon_1_1API_1_1http.html" > http< / a > < / li > < / ul >
2018-06-07 19:28:24 +02:00
< / div >
< / div > <!-- top -->
< div class = "header" >
< div class = "summary" >
< a href = "#pub-methods" > Public Member Functions< / a > |
< a href = "classMastodon_1_1API_1_1http-members.html" > List of all members< / a > < / div >
< div class = "headertitle" >
< div class = "title" > Mastodon::API::http Class Reference< / div > < / div >
< / div > <!-- header -->
< div class = "contents" >
< p > http class. Do not use this directly.
< a href = "classMastodon_1_1API_1_1http.html#details" > More...< / a > < / p >
< p > < code > #include < < a class = "el" href = "mastodon-cpp_8hpp_source.html" > mastodon-cpp.hpp< / a > > < / code > < / p >
< table class = "memberdecls" >
< tr class = "heading" > < td colspan = "2" > < h2 class = "groupheader" > < a name = "pub-methods" > < / a >
Public Member Functions< / h2 > < / td > < / tr >
2019-04-14 06:36:34 +02:00
< tr class = "memitem:a4d1bfdd627041a88e747916bd3d8d945" > < td class = "memItemLeft" align = "right" valign = "top" >   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classMastodon_1_1API_1_1http.html#a4d1bfdd627041a88e747916bd3d8d945" > http< / a > (const < a class = "el" href = "classMastodon_1_1API.html" > API< / a > & api, const string & instance, const string & access_token)< / td > < / tr >
< tr class = "memdesc:a4d1bfdd627041a88e747916bd3d8d945" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Constructs new http object. < a href = "#a4d1bfdd627041a88e747916bd3d8d945" > More...< / a > < br / > < / td > < / tr >
2018-06-07 19:28:24 +02:00
< tr class = "separator:a4d1bfdd627041a88e747916bd3d8d945" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2019-04-14 06:36:34 +02:00
< tr class = "memitem:a4ad1426610ac0f25118045cfcac49b2d" > < td class = "memItemLeft" align = "right" valign = "top" > < a id = "a4ad1426610ac0f25118045cfcac49b2d" > < / a >
< a class = "el" href = "structMastodon_1_1return__call.html" > return_call< / a >   < / td > < td class = "memItemRight" valign = "bottom" > < b > request< / b > (const < a class = "el" href = "namespaceMastodon.html#a1b4c13dfd9ccc43a2328d99a93b34452" > http_method< / a > & meth, const string & path)< / td > < / tr >
< tr class = "separator:a4ad1426610ac0f25118045cfcac49b2d" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2019-09-20 18:39:40 +02:00
< tr class = "memitem:a60218410e3b9f3726215a19805a9e73a" > < td class = "memItemLeft" align = "right" valign = "top" > < a class = "el" href = "structMastodon_1_1return__call.html" > return_call< / a >   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classMastodon_1_1API_1_1http.html#a60218410e3b9f3726215a19805a9e73a" > request< / a > (const < a class = "el" href = "namespaceMastodon.html#a1b4c13dfd9ccc43a2328d99a93b34452" > http_method< / a > & meth, const string & path, HTMLForm & formdata)< / td > < / tr >
< tr class = "memdesc:a60218410e3b9f3726215a19805a9e73a" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > HTTP Request. < a href = "#a60218410e3b9f3726215a19805a9e73a" > More...< / a > < br / > < / td > < / tr >
< tr class = "separator:a60218410e3b9f3726215a19805a9e73a" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2019-04-14 06:36:34 +02:00
< tr class = "memitem:a0d782e047c22357faf919fd9aa86b2df" > < td class = "memItemLeft" align = "right" valign = "top" > void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classMastodon_1_1API_1_1http.html#a0d782e047c22357faf919fd9aa86b2df" > request_stream< / a > (const string & path, string & stream)< / td > < / tr >
< tr class = "memdesc:a0d782e047c22357faf919fd9aa86b2df" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > HTTP Request for streams. < a href = "#a0d782e047c22357faf919fd9aa86b2df" > More...< / a > < br / > < / td > < / tr >
< tr class = "separator:a0d782e047c22357faf919fd9aa86b2df" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2018-12-04 11:34:47 +01:00
< tr class = "memitem:afc0e6357f12dd6e35a48aefb098ffc4a" > < td class = "memItemLeft" align = "right" valign = "top" > < a id = "afc0e6357f12dd6e35a48aefb098ffc4a" > < / a >
void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classMastodon_1_1API_1_1http.html#afc0e6357f12dd6e35a48aefb098ffc4a" > get_headers< / a > (string & headers) const< / td > < / tr >
< tr class = "memdesc:afc0e6357f12dd6e35a48aefb098ffc4a" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Get all headers in a string. < br / > < / td > < / tr >
< tr class = "separator:afc0e6357f12dd6e35a48aefb098ffc4a" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a5963c15ce15eb7672e21bd1191688668" > < td class = "memItemLeft" align = "right" valign = "top" > void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classMastodon_1_1API_1_1http.html#a5963c15ce15eb7672e21bd1191688668" > cancel_stream< / a > ()< / td > < / tr >
< tr class = "memdesc:a5963c15ce15eb7672e21bd1191688668" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Cancels the stream. Use only with streams. < a href = "#a5963c15ce15eb7672e21bd1191688668" > More...< / a > < br / > < / td > < / tr >
< tr class = "separator:a5963c15ce15eb7672e21bd1191688668" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2018-06-07 19:28:24 +02:00
< tr class = "memitem:a73b74ebe9fb2d6a38a1ab8946abbb4f3" > < td class = "memItemLeft" align = "right" valign = "top" > std::mutex &   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classMastodon_1_1API_1_1http.html#a73b74ebe9fb2d6a38a1ab8946abbb4f3" > get_mutex< / a > ()< / td > < / tr >
< tr class = "memdesc:a73b74ebe9fb2d6a38a1ab8946abbb4f3" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Gets the mutex guarding the string that is written to. < a href = "#a73b74ebe9fb2d6a38a1ab8946abbb4f3" > More...< / a > < br / > < / td > < / tr >
< tr class = "separator:a73b74ebe9fb2d6a38a1ab8946abbb4f3" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2019-09-20 18:39:40 +02:00
< tr class = "memitem:a968ad405015285e12cf22dd9d6395ddb" > < td class = "memItemLeft" align = "right" valign = "top" > void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classMastodon_1_1API_1_1http.html#a968ad405015285e12cf22dd9d6395ddb" > set_proxy< / a > (const string & hostport, const string & userpw=" " )< / td > < / tr >
< tr class = "memdesc:a968ad405015285e12cf22dd9d6395ddb" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Set proxy. Do not call this directly. < a href = "#a968ad405015285e12cf22dd9d6395ddb" > More...< / a > < br / > < / td > < / tr >
< tr class = "separator:a968ad405015285e12cf22dd9d6395ddb" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2018-06-07 19:28:24 +02:00
< / table >
< a name = "details" id = "details" > < / a > < h2 class = "groupheader" > Detailed Description< / h2 >
< div class = "textblock" > < p > http class. Do not use this directly. < / p >
2018-06-14 11:29:58 +02:00
< dl class = "section since" > < dt > Since< / dt > < dd > before 0.11.0 < / dd > < / dl >
2019-04-14 06:36:34 +02:00
< / div > < h2 class = "groupheader" > Constructor & Destructor Documentation< / h2 >
< a id = "a4d1bfdd627041a88e747916bd3d8d945" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a4d1bfdd627041a88e747916bd3d8d945" > ◆ < / a > < / span > http()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > API::http::http < / td >
< td > (< / td >
< td class = "paramtype" > const < a class = "el" href = "classMastodon_1_1API.html" > API< / a > &   < / td >
< td class = "paramname" > < em > api< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > const string &   < / td >
< td class = "paramname" > < em > instance< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > const string &   < / td >
< td class = "paramname" > < em > access_token< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > explicit< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Constructs new http object. < / p >
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
2019-09-20 18:39:40 +02:00
< tr > < td class = "paramname" > < a class = "el" href = "classMastodon_1_1API.html" title = "Interface to the Mastodon API." > API< / a > < / td > < td > Parent object. < / td > < / tr >
2019-04-14 06:36:34 +02:00
< tr > < td class = "paramname" > instance< / td > < td > Instance domain name < / td > < / tr >
< tr > < td class = "paramname" > access_token< / td > < td > Access token< / td > < / tr >
< / table >
< / dd >
< / dl >
< dl class = "section since" > < dt > Since< / dt > < dd > before 0.11.0 < / dd > < / dl >
2019-09-20 18:39:40 +02:00
< div class = "fragment" > < div class = "line" > < a name = "l00051" > < / a > < span class = "lineno" > 51< / span >   : parent(api)< / div > < div class = "line" > < a name = "l00052" > < / a > < span class = "lineno" > 52< / span >   , _instance(instance)< / div > < div class = "line" > < a name = "l00053" > < / a > < span class = "lineno" > 53< / span >   , _access_token(access_token)< / div > < div class = "line" > < a name = "l00054" > < / a > < span class = "lineno" > 54< / span >   , _cancel_stream(< span class = "keyword" > false< / span > )< / div > < div class = "line" > < a name = "l00055" > < / a > < span class = "lineno" > 55< / span >   {< / div > < div class = "line" > < a name = "l00056" > < / a > < span class = "lineno" > 56< / span >   Poco::Net::initializeSSL();< / div > < div class = "line" > < a name = "l00057" > < / a > < span class = "lineno" > 57< / span >   < / div > < div class = "line" > < a name = "l00058" > < / a > < span class = "lineno" > 58< / span >   < span class = "keywordflow" > try< / span > < / div > < div class = "line" > < a name = "l00059" > < / a > < span class = "lineno" > 59< / span >   {< / div > < div class = "line" > < a name = "l00060" > < / a > < span class = "lineno" > 60< / span >   < span class = "keywordtype" > string< / span > env_proxy = Environment::get(< span class = "stringliteral" > " http_proxy" < / span > );< / div > < div class = "line" > < a name = "l00061" > < / a > < span class = "lineno" > 61< / span >   < span class = "keywordtype" > size_t< / span > pos;< / div > < div class = "line" > < a name = "l00062" > < / a > < span class = "lineno" > 62< / span >   < / div > < div class = "line" > < a name = "l00063" > < / a > < span class = "lineno" > 63< / span >   < span class = "comment" > // Only keep text between // and /.< / span > < / div > < div class = "line" > < a name = "l00064" > < / a > < span class = "lineno" > 64< / span >   < span class = "keywordflow" > if< / span > ((pos = env_proxy.find(< span class = "stringliteral" > " //" < / span > )) != string::npos)< / div > < div class = "line" > < a name = "l00065" > < / a > < span class = "lineno" > 65< / span >   {< / div > < div class = "line" > < a name = "l00066" > < / a > < span class = "lineno" > 66< / span >   env_proxy = env_proxy.substr(pos + 2);< / div > < div class = "line" > < a name = "l00067" > < / a > < span class = "lineno" > 67< / span >   }< / div > < div class = "line" > < a name = "l00068" > < / a > < span class = "lineno" > 68< / span >   < span class = "keywordflow" > if< / span > ((pos = env_proxy.find(< span class = "charliteral" > ' /' < / span > )) != string::npos)< / div > < div class = "line" > < a name = "l00069" > < / a > < span class = "lineno" > 69< / span >   {< / div > < div class = "line" > < a name = "l00070" > < / a > < span class = "lineno" > 70< / span >   env_proxy = env_proxy.substr(0, pos);< / div > < div class = "line" > < a name = "l00071" > < / a > < span class = "lineno" > 71< / span >   }< / div > < div class = "line" > < a name = "l00072" > < / a > < span class = "lineno" > 72< / span >   < / div > < div class = "line" > < a name = "l00073" > < / a > < span class = "lineno" > 73< / span >   < span class = "keywordflow" > if< / span > ((pos = env_proxy.find(< span class = "charliteral" > ' @' < / span > )) != string::npos)< / div > < div class = "line" > < a name = "l00074" > < / a > < span class = "lineno" > 74< / span >   {< / div > < div class = "line" > < a name = "l00075" > < / a > < span class = "lineno" > 75< / span >   < span class = "keywordtype" > string< / span > hostport = env_proxy.substr(pos + 1);< / div > < div class = "line" > < a name = "l00076" > < / a > < span class = "lineno" > 76< / span >   < span class = "keywordtype" > string< / span > userpw = env_proxy.substr(0, pos);< / div > < div class = "line" > < a name = "l00077" > < / a > < span class = "lineno" > 77< / span >   < a class = "code" href = "classMastodon_1_1API_1_1http.html#a968ad405015285e12cf22dd9d6395ddb" > set_proxy< / a > (hostport, userpw);< / div > < div class = "line" > < a name = "l00078" > < / a > < span class = "lineno" > 78< / span >   }< / div > < div class = "line" > < a name = "l00079" > < / a > < span class = "lineno" > 79< / span >   < span class = "keywordflow" > else< / span > < / div > < div class = "line" > < a name = "l00080" > < / a > < span class = "lineno" > 80< / span >   {< / div > < div class = "line" > < a name = "l00081" > < / a > < span class = "lineno" > 81< / span >   < a class = "code" href = "classMastodon_1_1API_1_1http.html#a968ad405015285e12cf22dd9d6395ddb" > set_prox
< / div > <!-- fragment -->
2019-04-14 06:36:34 +02:00
< / div >
< / div >
< h2 class = "groupheader" > Member Function Documentation< / h2 >
2018-12-04 11:34:47 +01:00
< a id = "a5963c15ce15eb7672e21bd1191688668" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a5963c15ce15eb7672e21bd1191688668" > ◆ < / a > < / span > cancel_stream()< / h2 >
2018-06-07 19:28:24 +02:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
2018-12-04 11:34:47 +01:00
< td class = "memname" > void API::http::cancel_stream < / td >
2018-06-07 19:28:24 +02:00
< td > (< / td >
< td class = "paramname" > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Cancels the stream. Use only with streams. < / p >
2019-09-20 18:39:40 +02:00
< pre class = "fragment" > Cancels the stream next time data comes in. Can take a
few seconds. This works only with streams, because only
streams have an own http object.
< / pre > < dl class = "section since" > < dt > Since< / dt > < dd > 0.12.2 < / dd > < / dl >
< div class = "fragment" > < div class = "line" > < a name = "l00353" > < / a > < span class = "lineno" > 353< / span >   {< / div > < div class = "line" > < a name = "l00354" > < / a > < span class = "lineno" > 354< / span >   _cancel_stream = < span class = "keyword" > true< / span > ;< / div > < div class = "line" > < a name = "l00355" > < / a > < span class = "lineno" > 355< / span >   _streamthread.join();< / div > < div class = "line" > < a name = "l00356" > < / a > < span class = "lineno" > 356< / span >   }< / div > < / div > <!-- fragment -->
2018-06-07 19:28:24 +02:00
< / div >
< / div >
< a id = "a73b74ebe9fb2d6a38a1ab8946abbb4f3" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a73b74ebe9fb2d6a38a1ab8946abbb4f3" > ◆ < / a > < / span > get_mutex()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > std::mutex & API::http::get_mutex < / td >
< td > (< / td >
< td class = "paramname" > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Gets the mutex guarding the string that is written to. < / p >
2019-09-20 18:39:40 +02:00
< pre class = "fragment" > The mutex guards the function that writes to the string
you specified in get_stream().
< / pre > < dl class = "section return" > < dt > Returns< / dt > < dd > A reference of the mutex.< / dd > < / dl >
2018-06-14 11:29:58 +02:00
< dl class = "section since" > < dt > Since< / dt > < dd > 0.12.3 < / dd > < / dl >
2019-09-20 18:39:40 +02:00
< div class = "fragment" > < div class = "line" > < a name = "l00359" > < / a > < span class = "lineno" > 359< / span >   {< / div > < div class = "line" > < a name = "l00360" > < / a > < span class = "lineno" > 360< / span >   < span class = "keywordflow" > return< / span > _mutex;< / div > < div class = "line" > < a name = "l00361" > < / a > < span class = "lineno" > 361< / span >   }< / div > < / div > <!-- fragment -->
2018-06-07 19:28:24 +02:00
< / div >
< / div >
2019-09-20 18:39:40 +02:00
< a id = "a60218410e3b9f3726215a19805a9e73a" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a60218410e3b9f3726215a19805a9e73a" > ◆ < / a > < / span > request()< / h2 >
2018-06-07 19:28:24 +02:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
2019-04-14 06:36:34 +02:00
< td class = "memname" > < a class = "el" href = "structMastodon_1_1return__call.html" > return_call< / a > API::http::request < / td >
2018-06-07 19:28:24 +02:00
< td > (< / td >
2019-04-14 06:36:34 +02:00
< td class = "paramtype" > const < a class = "el" href = "namespaceMastodon.html#a1b4c13dfd9ccc43a2328d99a93b34452" > http_method< / a > &   < / td >
2018-06-07 19:28:24 +02:00
< td class = "paramname" > < em > meth< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > const string &   < / td >
< td class = "paramname" > < em > path< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
2019-09-20 18:39:40 +02:00
< td class = "paramtype" > HTMLForm &   < / td >
2019-04-14 06:36:34 +02:00
< td class = "paramname" > < em > formdata< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > HTTP Request. < / p >
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
< tr > < td class = "paramname" > meth< / td > < td > A method defined in < a href = "http::method" > http::method< / a > . < / td > < / tr >
2019-09-20 18:39:40 +02:00
< tr > < td class = "paramname" > path< / td > < td > The < a class = "el" href = "classMastodon_1_1API.html" title = "Interface to the Mastodon API." > API< / a > call as string. < / td > < / tr >
2019-04-14 06:36:34 +02:00
< tr > < td class = "paramname" > formdata< / td > < td > The form data for PATCH and POST requests.< / td > < / tr >
< / table >
< / dd >
< / dl >
< dl class = "section since" > < dt > Since< / dt > < dd > 0.100.0 < / dd > < / dl >
2019-09-20 18:39:40 +02:00
< div class = "fragment" > < div class = "line" > < a name = "l00145" > < / a > < span class = "lineno" > 145< / span >   {< / div > < div class = "line" > < a name = "l00146" > < / a > < span class = "lineno" > 146< / span >   < span class = "keywordtype" > string< / span > answer;< / div > < div class = "line" > < a name = "l00147" > < / a > < span class = "lineno" > 147< / span >   < span class = "keywordflow" > return< / span > request_common(meth, path, formdata, answer);< / div > < div class = "line" > < a name = "l00148" > < / a > < span class = "lineno" > 148< / span >   }< / div > < / div > <!-- fragment -->
2019-04-14 06:36:34 +02:00
< / div >
< / div >
< a id = "a0d782e047c22357faf919fd9aa86b2df" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a0d782e047c22357faf919fd9aa86b2df" > ◆ < / a > < / span > request_stream()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > void API::http::request_stream < / td >
< td > (< / td >
< td class = "paramtype" > const string &   < / td >
< td class = "paramname" > < em > path< / em > , < / td >
2018-06-07 19:28:24 +02:00
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > string &   < / td >
2019-04-14 06:36:34 +02:00
< td class = "paramname" > < em > stream< / em >   < / td >
2018-06-07 19:28:24 +02:00
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
2019-04-14 06:36:34 +02:00
< p > HTTP Request for streams. < / p >
2018-06-07 19:28:24 +02:00
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
2019-09-20 18:39:40 +02:00
< tr > < td class = "paramname" > path< / td > < td > The < a class = "el" href = "classMastodon_1_1API.html" title = "Interface to the Mastodon API." > API< / a > call as string. < / td > < / tr >
2019-04-14 06:36:34 +02:00
< tr > < td class = "paramname" > stream< / td > < td > The stream of data that is returned.< / td > < / tr >
2018-06-07 19:28:24 +02:00
< / table >
< / dd >
< / dl >
2019-04-14 06:36:34 +02:00
< dl class = "section since" > < dt > Since< / dt > < dd > 0.100.0 < / dd > < / dl >
2019-09-20 18:39:40 +02:00
< div class = "fragment" > < div class = "line" > < a name = "l00151" > < / a > < span class = "lineno" > 151< / span >   {< / div > < div class = "line" > < a name = "l00152" > < / a > < span class = "lineno" > 152< / span >   < span class = "keyword" > static< / span > < a class = "code" href = "structMastodon_1_1return__call.html" > return_call< / a > ret;< / div > < div class = "line" > < a name = "l00153" > < / a > < span class = "lineno" > 153< / span >   _streamthread = std::thread(< / div > < div class = "line" > < a name = "l00154" > < / a > < span class = "lineno" > 154< / span >   [& , path] < span class = "comment" > // path is captured by value because it may be< / span > < / div > < div class = "line" > < a name = "l00155" > < / a > < span class = "lineno" > 155< / span >   { < span class = "comment" > // deleted before we access it.< / span > < / div > < div class = "line" > < a name = "l00156" > < / a > < span class = "lineno" > 156< / span >   HTMLForm form;< / div > < div class = "line" > < a name = "l00157" > < / a > < span class = "lineno" > 157< / span >   ret = request_common(http_method::GET_STREAM, path,< / div > < div class = "line" > < a name = "l00158" > < / a > < span class = "lineno" > 158< / span >   form, stream);< / div > < div class = "line" > < a name = "l00159" > < / a > < span class = "lineno" > 159< / span >   ttdebug < < < span class = "stringliteral" > " Remaining content of the stream: " < / span > < < stream < < < span class = "charliteral" > ' \n' < / span > ;< / div > < div class = "line" > < a name = "l00160" > < / a > < span class = "lineno" > 160< / span >   < span class = "keywordflow" > if< / span > (!ret)< / div > < div class = "line" > < a name = "l00161" > < / a > < span class = "lineno" > 161< / span >   {< / div > < div class = "line" > < a name = "l00162" > < / a > < span class = "lineno" > 162< / span >   < span class = "comment" > // Embed the HTTP status code in stream on error.< / span > < / div > < div class = "line" > < a name = "l00163" > < / a > < span class = "lineno" > 163< / span >   stream += < span class = "stringliteral" > " event: ERROR\ndata: {\" error_code\" :" < / span > < / div > < div class = "line" > < a name = "l00164" > < / a > < span class = "lineno" > 164< / span >   + std::to_string(ret.< a class = "code" href = "structMastodon_1_1return__base.html#a12cebffae19249cac4c9e4ae9f95391a" > error_code< / a > ) + < span class = "stringliteral" > " ,\" http_error\" :" < / span > < / div > < div class = "line" > < a name = "l00165" > < / a > < span class = "lineno" > 165< / span >   + std::to_string(ret.< a class = "code" href = "structMastodon_1_1return__base.html#af62546b8b4bb03899ddbec770065e0b6" > http_error_code< / a > ) + < span class = "stringliteral" > " }\n" < / span > ;< / div > < div class = "line" > < a name = "l00166" > < / a > < span class = "lineno" > 166< / span >   }< / div > < div class = "line" > < a name = "l00167" > < / a > < span class = "lineno" > 167< / span >   });< / div > < div class = "line" > < a name = "l00168" > < / a > < span class = "lineno" > 168< / span >   }< / div > < div class = "ttc" id = "structMastodon_1_1return__call_html" > < div class = "ttname" > < a href = "structMastodon_1_1return__call.html" > Mastodon::return_call< / a > < / div > < div class = "ttdoc" > Return type for API calls.< / div > < div class = "ttdef" > < b > Definition:< / b > return_types.hpp:93< / div > < / div >
< div class = "ttc" id = "structMastodon_1_1return__base_html_a12cebffae19249cac4c9e4ae9f95391a" > < div class = "ttname" > < a href = "structMastodon_1_1return__base.html#a12cebffae19249cac4c9e4ae9f95391a" > Mastodon::return_base::error_code< / a > < / div > < div class = "ttdeci" > uint8_t error_code< / div > < div class = "ttdoc" > Error code.< / div > < div class = "ttdef" > < b > Definition:< / b > return_types.hpp:42< / div > < / div >
< div class = "ttc" id = "structMastodon_1_1return__base_html_af62546b8b4bb03899ddbec770065e0b6" > < div class = "ttname" > < a href = "structMastodon_1_1return__base.html#af62546b8b4bb03899ddbec770065e0b6" > Mastodon::return_base::http_error_code< / a > < / div > < div class = "ttdeci" > uint16_t http_error_code< / div > < div class = "ttdoc" > HTTP error code.< / div > < div class = "ttdef" > < b > Definition:< / b > return_types.hpp:56< / div > < / div >
< / div > <!-- fragment -->
< / div >
< / div >
< a id = "a968ad405015285e12cf22dd9d6395ddb" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a968ad405015285e12cf22dd9d6395ddb" > ◆ < / a > < / span > set_proxy()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > void API::http::set_proxy < / td >
< td > (< / td >
< td class = "paramtype" > const string &   < / td >
< td class = "paramname" > < em > hostport< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > const string &   < / td >
< td class = "paramname" > < em > userpw< / em > = < code > " " < / code >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Set proxy. Do not call this directly. < / p >
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
< tr > < td class = "paramname" > hostport< / td > < td > host[:port] < / td > < / tr >
< tr > < td class = "paramname" > userpw< / td > < td > user[:password] (optional)< / td > < / tr >
< / table >
< / dd >
< / dl >
< dl class = "section since" > < dt > Since< / dt > < dd > 0.110.0 < / dd > < / dl >
< div class = "fragment" > < div class = "line" > < a name = "l00097" > < / a > < span class = "lineno" > 97< / span >   {< / div > < div class = "line" > < a name = "l00098" > < / a > < span class = "lineno" > 98< / span >   < span class = "keywordflow" > try< / span > < / div > < div class = "line" > < a name = "l00099" > < / a > < span class = "lineno" > 99< / span >   {< / div > < div class = "line" > < a name = "l00100" > < / a > < span class = "lineno" > 100< / span >   HTTPSClientSession::ProxyConfig proxyconfig;< / div > < div class = "line" > < a name = "l00101" > < / a > < span class = "lineno" > 101< / span >   < span class = "keywordtype" > size_t< / span > pos = hostport.find(< span class = "charliteral" > ' :' < / span > );< / div > < div class = "line" > < a name = "l00102" > < / a > < span class = "lineno" > 102< / span >   < / div > < div class = "line" > < a name = "l00103" > < / a > < span class = "lineno" > 103< / span >   proxyconfig.host = hostport.substr(0, pos);< / div > < div class = "line" > < a name = "l00104" > < / a > < span class = "lineno" > 104< / span >   < span class = "keywordflow" > if< / span > (pos != string::npos)< / div > < div class = "line" > < a name = "l00105" > < / a > < span class = "lineno" > 105< / span >   {< / div > < div class = "line" > < a name = "l00106" > < / a > < span class = "lineno" > 106< / span >   proxyconfig.port = std::stoi(hostport.substr(pos + 1));< / div > < div class = "line" > < a name = "l00107" > < / a > < span class = "lineno" > 107< / span >   }< / div > < div class = "line" > < a name = "l00108" > < / a > < span class = "lineno" > 108< / span >   < / div > < div class = "line" > < a name = "l00109" > < / a > < span class = "lineno" > 109< / span >   < span class = "keywordflow" > if< / span > (!userpw.empty())< / div > < div class = "line" > < a name = "l00110" > < / a > < span class = "lineno" > 110< / span >   {< / div > < div class = "line" > < a name = "l00111" > < / a > < span class = "lineno" > 111< / span >   < span class = "keywordtype" > string< / span > username;< / div > < div class = "line" > < a name = "l00112" > < / a > < span class = "lineno" > 112< / span >   < / div > < div class = "line" > < a name = "l00113" > < / a > < span class = "lineno" > 113< / span >   pos = userpw.find(< span class = "charliteral" > ' :' < / span > );< / div > < div class = "line" > < a name = "l00114" > < / a > < span class = "lineno" > 114< / span >   Poco::URI::decode(userpw.substr(0, pos), username);< / div > < div class = "line" > < a name = "l00115" > < / a > < span class = "lineno" > 115< / span >   proxyconfig.username = username;< / div > < div class = "line" > < a name = "l00116" > < / a > < span class = "lineno" > 116< / span >   < / div > < div class = "line" > < a name = "l00117" > < / a > < span class = "lineno" > 117< / span >   < span class = "keywordflow" > if< / span > (pos != string::npos)< / div > < div class = "line" > < a name = "l00118" > < / a > < span class = "lineno" > 118< / span >   {< / div > < div class = "line" > < a name = "l00119" > < / a > < span class = "lineno" > 119< / span >   < span class = "keywordtype" > string< / span > password;< / div > < div class = "line" > < a name = "l00120" > < / a > < span class = "lineno" > 120< / span >   Poco::URI::decode(userpw.substr(pos + 1), password);< / div > < div class = "line" > < a name = "l00121" > < / a > < span class = "lineno" > 121< / span >   proxyconfig.password = password;< / div > < div class = "line" > < a name = "l00122" > < / a > < span class = "lineno" > 122< / span >   }< / div > < div class = "line" > < a name = "l00123" > < / a > < span class = "lineno" > 123< / span >   }< / div > < div class = "line" > < a name = "l00124" > < / a > < span class = "lineno" > 124< / span >   < / div > < div class = "line" > < a name = "l00125" > < / a > < span class = "lineno" > 125< / span >   HTTPSClientSession::setGlobalProxyConfig(proxyconfig);< / div > < div class = "line" > < a name = "l00126" > < / a > < span class = "lineno" > 126< / span >   ttdebug < < < span class = "stringliteral" > " Set proxy to " < / span > < < hostport < < < span class = "stringliteral" > " .\n" < / span > ;< / div > < div class = "line" > < a name = "l00127" > < / a > < span class = "lineno" > 127< / span >   }< / div > < div class = "line" > < a name = "l00128" > < / a > < span class = "lineno" > 128< / span >   < span class = "keywordflow" > catch< / span > (< span class = "keyword" > const< / span > std::exception & e)< / div > < div class = "line" > < a name = "l00129" > < / a > < s
2019-04-14 06:36:34 +02:00
< / div > <!-- fragment -->
2018-06-07 19:28:24 +02:00
< / div >
< / div >
< hr / > The documentation for this class was generated from the following files:< ul >
< li > src/< a class = "el" href = "mastodon-cpp_8hpp_source.html" > mastodon-cpp.hpp< / a > < / li >
< li > src/http.cpp< / li >
< / ul >
< / div > <!-- contents -->
<!-- start footer part -->
< hr class = "footer" / > < address class = "footer" > < small >
Generated by   < a href = "http://www.doxygen.org/index.html" >
< img class = "footer" src = "doxygen.png" alt = "doxygen" / >
2019-09-20 18:39:40 +02:00
< / a > 1.8.15
2018-06-07 19:28:24 +02:00
< / small > < / address >
< / body >
< / html >