Files
dl/document/html/dl__http_8h_source.html
2026-09-16 14:07:40 +08:00

287 lines
48 KiB
HTML
Vendored
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>dl: D:/dl/dl/io/dl_http.h 源文件</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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.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 id="projectrow">
<td id="projectalign">
<div id="projectname">dl
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.13.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
<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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',false,false,'search.php','搜索',false);
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_17297ffb27ce571941f5fb5008f01a1f.html">dl</a></li><li class="navelem"><a class="el" href="dir_8618662f707661daa8368f9a64c30c2e.html">io</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<div class="header">
<div class="headertitle"><div class="title">dl_http.h</div></div>
</div><!--header-->
<div class="contents">
<a href="dl__http_8h.html">浏览该文件的文档.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#pragma once</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include &lt;functional&gt;</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include &quot;<a class="code" href="dl__log_8h.html">io/dl_log.h</a>&quot;</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#include &quot;<a class="code" href="dl__buffer_8h.html">memory/dl_buffer.h</a>&quot;</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#include &quot;<a class="code" href="dl__json_8h.html">io/dl_json.h</a>&quot;</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacedl.html">dl</a></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span>{</div>
<div class="foldopen" id="foldopen00025" data-start="{" data-end="};">
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"><a class="line" href="classdl_1_1_http.html"> 25</a></span><span class="keyword">class </span><a class="code hl_function" href="classdl_1_1_http.html#aa563d565a4ee2de3c2ccbdfaed62d7d9">Http</a></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span>{</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen00028" data-start="{" data-end="};">
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"><a class="line" href="classdl_1_1_http_1_1_request.html"> 28</a></span> <span class="keyword">class </span><a class="code hl_function" href="classdl_1_1_http_1_1_request.html#a2d8b3b491750c264f76510e62bd2c192">Request</a></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> {</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"><a class="line" href="classdl_1_1_http_1_1_request.html#ab6f9c6e487b91e625330a1a88e0ff2be"> 31</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="classdl_1_1_http_1_1_request.html#ab6f9c6e487b91e625330a1a88e0ff2be">FnCallback</a> = std::function&lt;void(<span class="keywordtype">void</span>)&gt;;</div>
<div class="foldopen" id="foldopen00032" data-start="{" data-end="};">
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"><a class="line" href="classdl_1_1_http_1_1_request.html#a7a2e3cb83df2f11d8541a32872519da1"> 32</a></span> <span class="keyword">enum class</span> <a class="code hl_enumeration" href="classdl_1_1_http_1_1_request.html#a7a2e3cb83df2f11d8541a32872519da1">Type</a></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> {</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"><a class="line" href="classdl_1_1_http_1_1_request.html#a7a2e3cb83df2f11d8541a32872519da1a7528035a93ee69cedb1dbddb2f0bfcc8"> 34</a></span> <a class="code hl_enumvalue" href="classdl_1_1_http_1_1_request.html#a7a2e3cb83df2f11d8541a32872519da1a7528035a93ee69cedb1dbddb2f0bfcc8">GET</a>,</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"><a class="line" href="classdl_1_1_http_1_1_request.html#a7a2e3cb83df2f11d8541a32872519da1aa02439ec229d8be0e74b0c1602392310"> 35</a></span> <a class="code hl_enumvalue" href="classdl_1_1_http_1_1_request.html#a7a2e3cb83df2f11d8541a32872519da1aa02439ec229d8be0e74b0c1602392310">POST</a></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> };</div>
</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"><a class="line" href="classdl_1_1_http_1_1_request.html#a263163b29df8a18b4774126ef6c0c504"> 37</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_http_1_1_request.html#a263163b29df8a18b4774126ef6c0c504">SetUrl</a>(std::string_view url) { _url = url; }</div>
<div class="foldopen" id="foldopen00038" data-start="{" data-end="}">
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"><a class="line" href="classdl_1_1_http_1_1_request.html#a7828201577dcbdb636a4874509a24e97"> 38</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_http_1_1_request.html#a7828201577dcbdb636a4874509a24e97">SetType</a>(<a class="code hl_enumeration" href="classdl_1_1_http_1_1_request.html#a7a2e3cb83df2f11d8541a32872519da1">Type</a> type)</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> {</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> _type = type;</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="keywordflow">if</span> (_type != <a class="code hl_enumvalue" href="classdl_1_1_http_1_1_request.html#a7a2e3cb83df2f11d8541a32872519da1aa02439ec229d8be0e74b0c1602392310">Type::POST</a></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> &amp;&amp; !_bufSend.empty())</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> {</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <a class="code hl_define" href="dl__log_8h.html#abc86a6b34614cb6484cdf935d9350abd">log_err</a>(<span class="stringliteral">&quot;附加数据必须是POST类型!&quot;</span>);</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> }</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> }</div>
</div>
<div class="foldopen" id="foldopen00048" data-start="{" data-end="}">
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="classdl_1_1_http_1_1_request.html#accee0eac5137c019c83b7e28234dceba"> 48</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_http_1_1_request.html#accee0eac5137c019c83b7e28234dceba">SetDataSend</a>(<a class="code hl_class" href="classdl_1_1_buffer_view.html">BufferView</a> buf)</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> {</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="keywordflow">if</span> (_type != <a class="code hl_enumvalue" href="classdl_1_1_http_1_1_request.html#a7a2e3cb83df2f11d8541a32872519da1aa02439ec229d8be0e74b0c1602392310">Type::POST</a>)</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> {</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <a class="code hl_define" href="dl__log_8h.html#abc86a6b34614cb6484cdf935d9350abd">log_err</a>(<span class="stringliteral">&quot;附加数据必须是POST类型!&quot;</span>);</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> }</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> _bufSend = <a class="code hl_function" href="namespacedl.html#abe93ff6177d35638eb361b6904d12e48">CreateBuffer</a>(buf);</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> }</div>
</div>
<div class="foldopen" id="foldopen00057" data-start="{" data-end="}">
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"><a class="line" href="classdl_1_1_http_1_1_request.html#a6edf7158da9aa7f7935a009bb7dddf41"> 57</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_http_1_1_request.html#a6edf7158da9aa7f7935a009bb7dddf41">SetDataSend</a>(std::string_view str)</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> {</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <a class="code hl_function" href="classdl_1_1_http_1_1_request.html#accee0eac5137c019c83b7e28234dceba">SetDataSend</a>(<a class="code hl_function" href="namespacedl.html#af4c74bce1ba7b07a5aee7bc403f0ea25">CreateBufferView</a>(str));</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> }</div>
</div>
<div class="foldopen" id="foldopen00061" data-start="{" data-end="}">
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"><a class="line" href="classdl_1_1_http_1_1_request.html#a0a2978486025b85d81c4909ed1109ec3"> 61</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_http_1_1_request.html#a0a2978486025b85d81c4909ed1109ec3">SetDataSend</a>(<span class="keyword">const</span> <a class="code hl_typedef" href="dl__json_8h.html#ab701e3ac61a85b337ec5c1abaad6742d">json</a>&amp; j)</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> {</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <a class="code hl_function" href="classdl_1_1_http_1_1_request.html#accee0eac5137c019c83b7e28234dceba">SetDataSend</a>(<a class="code hl_function" href="namespacedl.html#af4c74bce1ba7b07a5aee7bc403f0ea25">CreateBufferView</a>(j.dump()));</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> }</div>
</div>
<div class="foldopen" id="foldopen00065" data-start="{" data-end="}">
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"><a class="line" href="classdl_1_1_http_1_1_request.html#afefe912fa60a07823955406b62ffb062"> 65</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_http_1_1_request.html#afefe912fa60a07823955406b62ffb062">SetHeader</a>(<span class="keyword">const</span> std::vector&lt;std::string&gt;&amp; vec_header)</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> {</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> _vecHeader = vec_header;</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> }</div>
</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"><a class="line" href="classdl_1_1_http_1_1_request.html#a1d1c687c892674a4fba46dc91d972861"> 69</a></span> std::vector&lt;std::string&gt; <a class="code hl_function" href="classdl_1_1_http_1_1_request.html#a1d1c687c892674a4fba46dc91d972861">GetHeader</a>() { <span class="keywordflow">return</span> _vecHeader; }</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"><a class="line" href="classdl_1_1_http_1_1_request.html#a573351abf1d3defc6f8c6a59bdfc2356"> 70</a></span> <a class="code hl_class" href="classdl_1_1_buffer_view.html">BufferView</a> <a class="code hl_function" href="classdl_1_1_http_1_1_request.html#a573351abf1d3defc6f8c6a59bdfc2356">GetDataSend</a>() { <span class="keywordflow">return</span> _bufSend; }</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> </div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"><a class="line" href="classdl_1_1_http_1_1_request.html#acc94796bcecc0020eed9610f2dee786b"> 72</a></span> <a class="code hl_typedef" href="classdl_1_1_http_1_1_request.html#ab6f9c6e487b91e625330a1a88e0ff2be">FnCallback</a> <a class="code hl_function" href="classdl_1_1_http_1_1_request.html#acc94796bcecc0020eed9610f2dee786b">GetCb</a>() { <span class="keywordflow">return</span> _fnCb; }</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"><a class="line" href="classdl_1_1_http_1_1_request.html#af6e733ba3c84b1f92026eff7c4c5a324"> 73</a></span> std::string <a class="code hl_function" href="classdl_1_1_http_1_1_request.html#af6e733ba3c84b1f92026eff7c4c5a324">GetUrl</a>() { <span class="keywordflow">return</span> _url; }</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> </div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"><a class="line" href="classdl_1_1_http_1_1_request.html#aae4459703bc7da8907a1ebe9fc67cf4a"> 75</a></span> <a class="code hl_class" href="classdl_1_1_buffer_view.html">BufferView</a> <a class="code hl_function" href="classdl_1_1_http_1_1_request.html#aae4459703bc7da8907a1ebe9fc67cf4a">GetDataRecv</a>() { <span class="keywordflow">return</span> _bufRecv; }</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"><a class="line" href="classdl_1_1_http_1_1_request.html#a4e7250025ab063a1e6f7372ae14fc5cb"> 76</a></span> <a class="code hl_class" href="classdl_1_1_buffer.html">Buffer</a>&amp; <a class="code hl_function" href="classdl_1_1_http_1_1_request.html#a4e7250025ab063a1e6f7372ae14fc5cb">GetDataRecvRef</a>() { <span class="keywordflow">return</span> _bufRecv; }</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> </div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"><a class="line" href="classdl_1_1_http_1_1_request.html#a998f9e337dcdef24e78c54472762fe1b"> 78</a></span> <a class="code hl_enumeration" href="classdl_1_1_http_1_1_request.html#a7a2e3cb83df2f11d8541a32872519da1">Type</a> <a class="code hl_function" href="classdl_1_1_http_1_1_request.html#a998f9e337dcdef24e78c54472762fe1b">GetType</a>() { <span class="keywordflow">return</span> _type; }</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> </div>
<div class="foldopen" id="foldopen00080" data-start="{" data-end="}">
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"><a class="line" href="classdl_1_1_http_1_1_request.html#a2d8b3b491750c264f76510e62bd2c192"> 80</a></span> <a class="code hl_function" href="classdl_1_1_http_1_1_request.html#a2d8b3b491750c264f76510e62bd2c192">Request</a>() :</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> _type{ <a class="code hl_enumeration" href="classdl_1_1_http_1_1_request.html#a7a2e3cb83df2f11d8541a32872519da1">Type</a>::<a class="code hl_enumvalue" href="classdl_1_1_http_1_1_request.html#a7a2e3cb83df2f11d8541a32872519da1a7528035a93ee69cedb1dbddb2f0bfcc8">GET</a> }</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> {</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> </div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> }</div>
</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <a class="code hl_enumeration" href="classdl_1_1_http_1_1_request.html#a7a2e3cb83df2f11d8541a32872519da1">Type</a> _type;</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <a class="code hl_typedef" href="classdl_1_1_http_1_1_request.html#ab6f9c6e487b91e625330a1a88e0ff2be">FnCallback</a> _fnCb;</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> std::string _url;</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> std::vector&lt;std::string&gt; _vecHeader;</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <a class="code hl_class" href="classdl_1_1_buffer.html">Buffer</a> _bufRecv;</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <a class="code hl_class" href="classdl_1_1_buffer.html">Buffer</a> _bufSend;</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> };</div>
</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"><a class="line" href="classdl_1_1_http.html#aa563d565a4ee2de3c2ccbdfaed62d7d9"> 93</a></span> <a class="code hl_function" href="classdl_1_1_http.html#aa563d565a4ee2de3c2ccbdfaed62d7d9">Http</a>();</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"><a class="line" href="classdl_1_1_http.html#a1fd01e62aa97d4b0eda017164ffd04a1"> 94</a></span> <a class="code hl_function" href="classdl_1_1_http.html#a1fd01e62aa97d4b0eda017164ffd04a1">~Http</a>();</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"><a class="line" href="classdl_1_1_http.html#a16c52f8a1925ed2a367d7357ba80d053"> 95</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classdl_1_1_http.html#a16c52f8a1925ed2a367d7357ba80d053">SendRequest</a>(<a class="code hl_class" href="classdl_1_1_http_1_1_request.html">Request</a>&amp; request);</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span></div>
<div class="foldopen" id="foldopen00098" data-start="{" data-end="}">
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"><a class="line" href="classdl_1_1_http.html#a7b61b02bff3b19a0c94222bd1750c2c4"> 98</a></span> <a class="code hl_class" href="classdl_1_1_buffer.html">Buffer</a> <a class="code hl_function" href="classdl_1_1_http.html#a7b61b02bff3b19a0c94222bd1750c2c4">ExDownload</a>(std::string_view url)</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> {</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <a class="code hl_class" href="classdl_1_1_http_1_1_request.html">Request</a> req;</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> req.<a class="code hl_function" href="classdl_1_1_http_1_1_request.html#a7828201577dcbdb636a4874509a24e97">SetType</a>(<a class="code hl_enumvalue" href="classdl_1_1_http_1_1_request.html#a7a2e3cb83df2f11d8541a32872519da1a7528035a93ee69cedb1dbddb2f0bfcc8">Request::Type::GET</a>);</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> req.<a class="code hl_function" href="classdl_1_1_http_1_1_request.html#a263163b29df8a18b4774126ef6c0c504">SetUrl</a>(url);</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> </div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="classdl_1_1_http.html#a16c52f8a1925ed2a367d7357ba80d053">SendRequest</a>(req))</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <span class="keywordflow">return</span> {};</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespacedl.html#abe93ff6177d35638eb361b6904d12e48">CreateBuffer</a>(req.<a class="code hl_function" href="classdl_1_1_http_1_1_request.html#aae4459703bc7da8907a1ebe9fc67cf4a">GetDataRecv</a>());</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> }</div>
</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> </div>
<div class="foldopen" id="foldopen00109" data-start="{" data-end="}">
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"><a class="line" href="classdl_1_1_http.html#a90dc250f37789d863fde372b491c7626"> 109</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_http.html#a90dc250f37789d863fde372b491c7626">SetCACertPath</a>(std::string_view str)</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> {</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> _pathCACert = str;</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> }</div>
</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"><a class="line" href="classdl_1_1_http.html#a63770e41360c9d970c7c30ca2073b315"> 113</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_http.html#a63770e41360c9d970c7c30ca2073b315">SetShowResultLog</a>(<span class="keywordtype">bool</span> show) { _bShowResultLog = show; }</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <span class="comment">// 辅助解析类</span></div>
<div class="foldopen" id="foldopen00115" data-start="{" data-end="};">
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"><a class="line" href="structdl_1_1_http_1_1_recv_data.html"> 115</a></span> <span class="keyword">struct </span><a class="code hl_function" href="structdl_1_1_http_1_1_recv_data.html#ae8b0cd77630cb9701db06bef1727b5a4">RecvData</a></div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> {</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"><a class="line" href="structdl_1_1_http_1_1_recv_data.html#a80b4aded7bc07cd1e1cd11fe95bc62c4"> 117</a></span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structdl_1_1_http_1_1_recv_data.html#a80b4aded7bc07cd1e1cd11fe95bc62c4">_code</a>;</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"><a class="line" href="structdl_1_1_http_1_1_recv_data.html#aaa2b8f741233c1dd11414638b3e51fe8"> 118</a></span> std::string <a class="code hl_variable" href="structdl_1_1_http_1_1_recv_data.html#aaa2b8f741233c1dd11414638b3e51fe8">_msg</a>;</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"><a class="line" href="structdl_1_1_http_1_1_recv_data.html#ab30ce83e20bbc76ce53bfe4d5a30afe7"> 119</a></span> <a class="code hl_typedef" href="dl__json_8h.html#ab701e3ac61a85b337ec5c1abaad6742d">json</a> <a class="code hl_variable" href="structdl_1_1_http_1_1_recv_data.html#ab30ce83e20bbc76ce53bfe4d5a30afe7">_data</a>;</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> </div>
<div class="foldopen" id="foldopen00121" data-start="{" data-end="}">
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"><a class="line" href="structdl_1_1_http_1_1_recv_data.html#ae8b0cd77630cb9701db06bef1727b5a4"> 121</a></span> <a class="code hl_function" href="structdl_1_1_http_1_1_recv_data.html#ae8b0cd77630cb9701db06bef1727b5a4">RecvData</a>(<a class="code hl_class" href="classdl_1_1_buffer_view.html">BufferView</a> buf)</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> {</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <a class="code hl_typedef" href="dl__json_8h.html#ab701e3ac61a85b337ec5c1abaad6742d">json</a> j = <a class="code hl_function" href="namespacedl_1_1_json.html#a3348518a8a53180e6fafdc975bbde66e">dl::Json::Parse</a>(buf);</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <a class="code hl_function" href="namespacedl_1_1_json.html#acbbd917ab95107f695018bc2521394c1">dl::Json::Get</a>(j, <span class="stringliteral">&quot;Code&quot;</span>, <a class="code hl_variable" href="structdl_1_1_http_1_1_recv_data.html#a80b4aded7bc07cd1e1cd11fe95bc62c4">_code</a>);</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <a class="code hl_function" href="namespacedl_1_1_json.html#acbbd917ab95107f695018bc2521394c1">dl::Json::Get</a>(j, <span class="stringliteral">&quot;Msg&quot;</span>, <a class="code hl_variable" href="structdl_1_1_http_1_1_recv_data.html#aaa2b8f741233c1dd11414638b3e51fe8">_msg</a>);</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <a class="code hl_function" href="namespacedl_1_1_json.html#acbbd917ab95107f695018bc2521394c1">dl::Json::Get</a>(j, <span class="stringliteral">&quot;Data&quot;</span>, <a class="code hl_variable" href="structdl_1_1_http_1_1_recv_data.html#ab30ce83e20bbc76ce53bfe4d5a30afe7">_data</a>);</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> }</div>
</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> </div>
<div class="foldopen" id="foldopen00129" data-start="{" data-end="}">
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"><a class="line" href="structdl_1_1_http_1_1_recv_data.html#ae44cf1c6fd3261f6b3677e2c49c7ca94"> 129</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structdl_1_1_http_1_1_recv_data.html#ae44cf1c6fd3261f6b3677e2c49c7ca94">Check</a>(<span class="keywordtype">int</span> code = 0)</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> {</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="structdl_1_1_http_1_1_recv_data.html#a80b4aded7bc07cd1e1cd11fe95bc62c4">_code</a> != code)</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> {</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <a class="code hl_define" href="dl__log_8h.html#a04af09851c431d178f16b24fa1aac1e9">log_warn</a>(<span class="stringliteral">&quot;{}&quot;</span>, <a class="code hl_function" href="structdl_1_1_http_1_1_recv_data.html#a744e0e516d99a72824e5fa1ef9e90b2e">DumpError</a>());</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> }</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> }</div>
</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> </div>
<div class="foldopen" id="foldopen00139" data-start="{" data-end="}">
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"><a class="line" href="structdl_1_1_http_1_1_recv_data.html#a744e0e516d99a72824e5fa1ef9e90b2e"> 139</a></span> std::string <a class="code hl_function" href="structdl_1_1_http_1_1_recv_data.html#a744e0e516d99a72824e5fa1ef9e90b2e">DumpError</a>()</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> {</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> std::string d;</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="structdl_1_1_http_1_1_recv_data.html#ab30ce83e20bbc76ce53bfe4d5a30afe7">_data</a>.is_string())</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> d = <a class="code hl_variable" href="structdl_1_1_http_1_1_recv_data.html#ab30ce83e20bbc76ce53bfe4d5a30afe7">_data</a>;</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> d = <a class="code hl_variable" href="structdl_1_1_http_1_1_recv_data.html#ab30ce83e20bbc76ce53bfe4d5a30afe7">_data</a>.dump();</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> <span class="keywordflow">return</span> fmt::format(<span class="stringliteral">&quot;{}{}({})&quot;</span>, <a class="code hl_variable" href="structdl_1_1_http_1_1_recv_data.html#aaa2b8f741233c1dd11414638b3e51fe8">_msg</a>, d, <a class="code hl_variable" href="structdl_1_1_http_1_1_recv_data.html#a80b4aded7bc07cd1e1cd11fe95bc62c4">_code</a>);</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> }</div>
</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> };</div>
</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span><span class="keyword">private</span>:</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> std::string _pathCACert; <span class="comment">// 证书路径</span></div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> <span class="keywordtype">bool</span> _bShowResultLog;</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span>};</div>
</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span><span class="keyword">extern</span> Http* <a class="code hl_variable" href="namespacedl.html#a49163cae0b74abda1ee0e7628510e826">g_http</a>;</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span>}</div>
<div class="ttc" id="aclassdl_1_1_buffer_html"><div class="ttname"><a href="classdl_1_1_buffer.html">dl::Buffer</a></div><div class="ttdef"><b>定义</b> <a href="dl__buffer_8h_source.html#l00028">dl_buffer.h:29</a></div></div>
<div class="ttc" id="aclassdl_1_1_buffer_view_html"><div class="ttname"><a href="classdl_1_1_buffer_view.html">dl::BufferView</a></div><div class="ttdef"><b>定义</b> <a href="dl__buffer_8h_source.html#l00155">dl_buffer.h:156</a></div></div>
<div class="ttc" id="aclassdl_1_1_http_1_1_request_html"><div class="ttname"><a href="classdl_1_1_http_1_1_request.html">dl::Http::Request</a></div><div class="ttdef"><b>定义</b> <a href="#l00028">dl_http.h:29</a></div></div>
<div class="ttc" id="aclassdl_1_1_http_1_1_request_html_a0a2978486025b85d81c4909ed1109ec3"><div class="ttname"><a href="classdl_1_1_http_1_1_request.html#a0a2978486025b85d81c4909ed1109ec3">dl::Http::Request::SetDataSend</a></div><div class="ttdeci">void SetDataSend(const json &amp;j)</div><div class="ttdef"><b>定义</b> <a href="#l00061">dl_http.h:61</a></div></div>
<div class="ttc" id="aclassdl_1_1_http_1_1_request_html_a1d1c687c892674a4fba46dc91d972861"><div class="ttname"><a href="classdl_1_1_http_1_1_request.html#a1d1c687c892674a4fba46dc91d972861">dl::Http::Request::GetHeader</a></div><div class="ttdeci">std::vector&lt; std::string &gt; GetHeader()</div><div class="ttdef"><b>定义</b> <a href="#l00069">dl_http.h:69</a></div></div>
<div class="ttc" id="aclassdl_1_1_http_1_1_request_html_a263163b29df8a18b4774126ef6c0c504"><div class="ttname"><a href="classdl_1_1_http_1_1_request.html#a263163b29df8a18b4774126ef6c0c504">dl::Http::Request::SetUrl</a></div><div class="ttdeci">void SetUrl(std::string_view url)</div><div class="ttdef"><b>定义</b> <a href="#l00037">dl_http.h:37</a></div></div>
<div class="ttc" id="aclassdl_1_1_http_1_1_request_html_a2d8b3b491750c264f76510e62bd2c192"><div class="ttname"><a href="classdl_1_1_http_1_1_request.html#a2d8b3b491750c264f76510e62bd2c192">dl::Http::Request::Request</a></div><div class="ttdeci">Request()</div><div class="ttdef"><b>定义</b> <a href="#l00080">dl_http.h:80</a></div></div>
<div class="ttc" id="aclassdl_1_1_http_1_1_request_html_a4e7250025ab063a1e6f7372ae14fc5cb"><div class="ttname"><a href="classdl_1_1_http_1_1_request.html#a4e7250025ab063a1e6f7372ae14fc5cb">dl::Http::Request::GetDataRecvRef</a></div><div class="ttdeci">Buffer &amp; GetDataRecvRef()</div><div class="ttdef"><b>定义</b> <a href="#l00076">dl_http.h:76</a></div></div>
<div class="ttc" id="aclassdl_1_1_http_1_1_request_html_a573351abf1d3defc6f8c6a59bdfc2356"><div class="ttname"><a href="classdl_1_1_http_1_1_request.html#a573351abf1d3defc6f8c6a59bdfc2356">dl::Http::Request::GetDataSend</a></div><div class="ttdeci">BufferView GetDataSend()</div><div class="ttdef"><b>定义</b> <a href="#l00070">dl_http.h:70</a></div></div>
<div class="ttc" id="aclassdl_1_1_http_1_1_request_html_a6edf7158da9aa7f7935a009bb7dddf41"><div class="ttname"><a href="classdl_1_1_http_1_1_request.html#a6edf7158da9aa7f7935a009bb7dddf41">dl::Http::Request::SetDataSend</a></div><div class="ttdeci">void SetDataSend(std::string_view str)</div><div class="ttdef"><b>定义</b> <a href="#l00057">dl_http.h:57</a></div></div>
<div class="ttc" id="aclassdl_1_1_http_1_1_request_html_a7828201577dcbdb636a4874509a24e97"><div class="ttname"><a href="classdl_1_1_http_1_1_request.html#a7828201577dcbdb636a4874509a24e97">dl::Http::Request::SetType</a></div><div class="ttdeci">void SetType(Type type)</div><div class="ttdef"><b>定义</b> <a href="#l00038">dl_http.h:38</a></div></div>
<div class="ttc" id="aclassdl_1_1_http_1_1_request_html_a7a2e3cb83df2f11d8541a32872519da1"><div class="ttname"><a href="classdl_1_1_http_1_1_request.html#a7a2e3cb83df2f11d8541a32872519da1">dl::Http::Request::Type</a></div><div class="ttdeci">Type</div><div class="ttdef"><b>定义</b> <a href="#l00032">dl_http.h:33</a></div></div>
<div class="ttc" id="aclassdl_1_1_http_1_1_request_html_a7a2e3cb83df2f11d8541a32872519da1a7528035a93ee69cedb1dbddb2f0bfcc8"><div class="ttname"><a href="classdl_1_1_http_1_1_request.html#a7a2e3cb83df2f11d8541a32872519da1a7528035a93ee69cedb1dbddb2f0bfcc8">dl::Http::Request::Type::GET</a></div><div class="ttdeci">@ GET</div><div class="ttdef"><b>定义</b> <a href="#l00034">dl_http.h:34</a></div></div>
<div class="ttc" id="aclassdl_1_1_http_1_1_request_html_a7a2e3cb83df2f11d8541a32872519da1aa02439ec229d8be0e74b0c1602392310"><div class="ttname"><a href="classdl_1_1_http_1_1_request.html#a7a2e3cb83df2f11d8541a32872519da1aa02439ec229d8be0e74b0c1602392310">dl::Http::Request::Type::POST</a></div><div class="ttdeci">@ POST</div><div class="ttdef"><b>定义</b> <a href="#l00035">dl_http.h:35</a></div></div>
<div class="ttc" id="aclassdl_1_1_http_1_1_request_html_a998f9e337dcdef24e78c54472762fe1b"><div class="ttname"><a href="classdl_1_1_http_1_1_request.html#a998f9e337dcdef24e78c54472762fe1b">dl::Http::Request::GetType</a></div><div class="ttdeci">Type GetType()</div><div class="ttdef"><b>定义</b> <a href="#l00078">dl_http.h:78</a></div></div>
<div class="ttc" id="aclassdl_1_1_http_1_1_request_html_aae4459703bc7da8907a1ebe9fc67cf4a"><div class="ttname"><a href="classdl_1_1_http_1_1_request.html#aae4459703bc7da8907a1ebe9fc67cf4a">dl::Http::Request::GetDataRecv</a></div><div class="ttdeci">BufferView GetDataRecv()</div><div class="ttdef"><b>定义</b> <a href="#l00075">dl_http.h:75</a></div></div>
<div class="ttc" id="aclassdl_1_1_http_1_1_request_html_ab6f9c6e487b91e625330a1a88e0ff2be"><div class="ttname"><a href="classdl_1_1_http_1_1_request.html#ab6f9c6e487b91e625330a1a88e0ff2be">dl::Http::Request::FnCallback</a></div><div class="ttdeci">std::function&lt; void(void)&gt; FnCallback</div><div class="ttdef"><b>定义</b> <a href="#l00031">dl_http.h:31</a></div></div>
<div class="ttc" id="aclassdl_1_1_http_1_1_request_html_acc94796bcecc0020eed9610f2dee786b"><div class="ttname"><a href="classdl_1_1_http_1_1_request.html#acc94796bcecc0020eed9610f2dee786b">dl::Http::Request::GetCb</a></div><div class="ttdeci">FnCallback GetCb()</div><div class="ttdef"><b>定义</b> <a href="#l00072">dl_http.h:72</a></div></div>
<div class="ttc" id="aclassdl_1_1_http_1_1_request_html_accee0eac5137c019c83b7e28234dceba"><div class="ttname"><a href="classdl_1_1_http_1_1_request.html#accee0eac5137c019c83b7e28234dceba">dl::Http::Request::SetDataSend</a></div><div class="ttdeci">void SetDataSend(BufferView buf)</div><div class="ttdef"><b>定义</b> <a href="#l00048">dl_http.h:48</a></div></div>
<div class="ttc" id="aclassdl_1_1_http_1_1_request_html_af6e733ba3c84b1f92026eff7c4c5a324"><div class="ttname"><a href="classdl_1_1_http_1_1_request.html#af6e733ba3c84b1f92026eff7c4c5a324">dl::Http::Request::GetUrl</a></div><div class="ttdeci">std::string GetUrl()</div><div class="ttdef"><b>定义</b> <a href="#l00073">dl_http.h:73</a></div></div>
<div class="ttc" id="aclassdl_1_1_http_1_1_request_html_afefe912fa60a07823955406b62ffb062"><div class="ttname"><a href="classdl_1_1_http_1_1_request.html#afefe912fa60a07823955406b62ffb062">dl::Http::Request::SetHeader</a></div><div class="ttdeci">void SetHeader(const std::vector&lt; std::string &gt; &amp;vec_header)</div><div class="ttdef"><b>定义</b> <a href="#l00065">dl_http.h:65</a></div></div>
<div class="ttc" id="aclassdl_1_1_http_html_a16c52f8a1925ed2a367d7357ba80d053"><div class="ttname"><a href="classdl_1_1_http.html#a16c52f8a1925ed2a367d7357ba80d053">dl::Http::SendRequest</a></div><div class="ttdeci">bool SendRequest(Request &amp;request)</div></div>
<div class="ttc" id="aclassdl_1_1_http_html_a1fd01e62aa97d4b0eda017164ffd04a1"><div class="ttname"><a href="classdl_1_1_http.html#a1fd01e62aa97d4b0eda017164ffd04a1">dl::Http::~Http</a></div><div class="ttdeci">~Http()</div></div>
<div class="ttc" id="aclassdl_1_1_http_html_a63770e41360c9d970c7c30ca2073b315"><div class="ttname"><a href="classdl_1_1_http.html#a63770e41360c9d970c7c30ca2073b315">dl::Http::SetShowResultLog</a></div><div class="ttdeci">void SetShowResultLog(bool show)</div><div class="ttdef"><b>定义</b> <a href="#l00113">dl_http.h:113</a></div></div>
<div class="ttc" id="aclassdl_1_1_http_html_a7b61b02bff3b19a0c94222bd1750c2c4"><div class="ttname"><a href="classdl_1_1_http.html#a7b61b02bff3b19a0c94222bd1750c2c4">dl::Http::ExDownload</a></div><div class="ttdeci">Buffer ExDownload(std::string_view url)</div><div class="ttdoc">下载文件</div><div class="ttdef"><b>定义</b> <a href="#l00098">dl_http.h:98</a></div></div>
<div class="ttc" id="aclassdl_1_1_http_html_a90dc250f37789d863fde372b491c7626"><div class="ttname"><a href="classdl_1_1_http.html#a90dc250f37789d863fde372b491c7626">dl::Http::SetCACertPath</a></div><div class="ttdeci">void SetCACertPath(std::string_view str)</div><div class="ttdef"><b>定义</b> <a href="#l00109">dl_http.h:109</a></div></div>
<div class="ttc" id="aclassdl_1_1_http_html_aa563d565a4ee2de3c2ccbdfaed62d7d9"><div class="ttname"><a href="classdl_1_1_http.html#aa563d565a4ee2de3c2ccbdfaed62d7d9">dl::Http::Http</a></div><div class="ttdeci">Http()</div></div>
<div class="ttc" id="adl__buffer_8h_html"><div class="ttname"><a href="dl__buffer_8h.html">dl_buffer.h</a></div><div class="ttdoc">表示一段内存</div></div>
<div class="ttc" id="adl__json_8h_html"><div class="ttname"><a href="dl__json_8h.html">dl_json.h</a></div><div class="ttdoc">json格式相关</div></div>
<div class="ttc" id="adl__json_8h_html_ab701e3ac61a85b337ec5c1abaad6742d"><div class="ttname"><a href="dl__json_8h.html#ab701e3ac61a85b337ec5c1abaad6742d">json</a></div><div class="ttdeci">nlohmann::json json</div><div class="ttdef"><b>定义</b> <a href="dl__json_8h_source.html#l00020">dl_json.h:20</a></div></div>
<div class="ttc" id="adl__log_8h_html"><div class="ttname"><a href="dl__log_8h.html">dl_log.h</a></div><div class="ttdoc">日志系统</div></div>
<div class="ttc" id="adl__log_8h_html_a04af09851c431d178f16b24fa1aac1e9"><div class="ttname"><a href="dl__log_8h.html#a04af09851c431d178f16b24fa1aac1e9">log_warn</a></div><div class="ttdeci">#define log_warn(...)</div><div class="ttdef"><b>定义</b> <a href="dl__log_8h_source.html#l00283">dl_log.h:283</a></div></div>
<div class="ttc" id="adl__log_8h_html_abc86a6b34614cb6484cdf935d9350abd"><div class="ttname"><a href="dl__log_8h.html#abc86a6b34614cb6484cdf935d9350abd">log_err</a></div><div class="ttdeci">#define log_err(...)</div><div class="ttdef"><b>定义</b> <a href="dl__log_8h_source.html#l00284">dl_log.h:284</a></div></div>
<div class="ttc" id="anamespacedl_1_1_json_html_a3348518a8a53180e6fafdc975bbde66e"><div class="ttname"><a href="namespacedl_1_1_json.html#a3348518a8a53180e6fafdc975bbde66e">dl::Json::Parse</a></div><div class="ttdeci">json Parse(BufferView buf, bool binary=false)</div><div class="ttdoc">从 内存 构建json对象</div></div>
<div class="ttc" id="anamespacedl_1_1_json_html_acbbd917ab95107f695018bc2521394c1"><div class="ttname"><a href="namespacedl_1_1_json.html#acbbd917ab95107f695018bc2521394c1">dl::Json::Get</a></div><div class="ttdeci">bool Get(const json &amp;j, const std::string &amp;name, T &amp;t)</div><div class="ttdoc">从json返回子元素值,不存在则返回false,打印日志</div><div class="ttdef"><b>定义</b> <a href="dl__json_8h_source.html#l00068">dl_json.h:68</a></div></div>
<div class="ttc" id="anamespacedl_html"><div class="ttname"><a href="namespacedl.html">dl</a></div><div class="ttdef"><b>定义</b> <a href="dl__array_8h_source.html#l00021">dl_array.h:22</a></div></div>
<div class="ttc" id="anamespacedl_html_a49163cae0b74abda1ee0e7628510e826"><div class="ttname"><a href="namespacedl.html#a49163cae0b74abda1ee0e7628510e826">dl::g_http</a></div><div class="ttdeci">Http * g_http</div></div>
<div class="ttc" id="anamespacedl_html_abe93ff6177d35638eb361b6904d12e48"><div class="ttname"><a href="namespacedl.html#abe93ff6177d35638eb361b6904d12e48">dl::CreateBuffer</a></div><div class="ttdeci">Buffer CreateBuffer(BufferView buf)</div><div class="ttdoc">创建副本</div><div class="ttdef"><b>定义</b> <a href="dl__buffer_8h_source.html#l00256">dl_buffer.h:256</a></div></div>
<div class="ttc" id="anamespacedl_html_af4c74bce1ba7b07a5aee7bc403f0ea25"><div class="ttname"><a href="namespacedl.html#af4c74bce1ba7b07a5aee7bc403f0ea25">dl::CreateBufferView</a></div><div class="ttdeci">BufferView CreateBufferView(const Buffer &amp;buf)</div><div class="ttdoc">创建buffer视图(右值不能默认转换)</div><div class="ttdef"><b>定义</b> <a href="dl__buffer_8h_source.html#l00201">dl_buffer.h:201</a></div></div>
<div class="ttc" id="astructdl_1_1_http_1_1_recv_data_html_a744e0e516d99a72824e5fa1ef9e90b2e"><div class="ttname"><a href="structdl_1_1_http_1_1_recv_data.html#a744e0e516d99a72824e5fa1ef9e90b2e">dl::Http::RecvData::DumpError</a></div><div class="ttdeci">std::string DumpError()</div><div class="ttdef"><b>定义</b> <a href="#l00139">dl_http.h:139</a></div></div>
<div class="ttc" id="astructdl_1_1_http_1_1_recv_data_html_a80b4aded7bc07cd1e1cd11fe95bc62c4"><div class="ttname"><a href="structdl_1_1_http_1_1_recv_data.html#a80b4aded7bc07cd1e1cd11fe95bc62c4">dl::Http::RecvData::_code</a></div><div class="ttdeci">int _code</div><div class="ttdef"><b>定义</b> <a href="#l00117">dl_http.h:117</a></div></div>
<div class="ttc" id="astructdl_1_1_http_1_1_recv_data_html_aaa2b8f741233c1dd11414638b3e51fe8"><div class="ttname"><a href="structdl_1_1_http_1_1_recv_data.html#aaa2b8f741233c1dd11414638b3e51fe8">dl::Http::RecvData::_msg</a></div><div class="ttdeci">std::string _msg</div><div class="ttdef"><b>定义</b> <a href="#l00118">dl_http.h:118</a></div></div>
<div class="ttc" id="astructdl_1_1_http_1_1_recv_data_html_ab30ce83e20bbc76ce53bfe4d5a30afe7"><div class="ttname"><a href="structdl_1_1_http_1_1_recv_data.html#ab30ce83e20bbc76ce53bfe4d5a30afe7">dl::Http::RecvData::_data</a></div><div class="ttdeci">json _data</div><div class="ttdef"><b>定义</b> <a href="#l00119">dl_http.h:119</a></div></div>
<div class="ttc" id="astructdl_1_1_http_1_1_recv_data_html_ae44cf1c6fd3261f6b3677e2c49c7ca94"><div class="ttname"><a href="structdl_1_1_http_1_1_recv_data.html#ae44cf1c6fd3261f6b3677e2c49c7ca94">dl::Http::RecvData::Check</a></div><div class="ttdeci">bool Check(int code=0)</div><div class="ttdef"><b>定义</b> <a href="#l00129">dl_http.h:129</a></div></div>
<div class="ttc" id="astructdl_1_1_http_1_1_recv_data_html_ae8b0cd77630cb9701db06bef1727b5a4"><div class="ttname"><a href="structdl_1_1_http_1_1_recv_data.html#ae8b0cd77630cb9701db06bef1727b5a4">dl::Http::RecvData::RecvData</a></div><div class="ttdeci">RecvData(BufferView buf)</div><div class="ttdef"><b>定义</b> <a href="#l00121">dl_http.h:121</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
制作者&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1
</small></address>
</div><!-- doc-content -->
</body>
</html>