bl_iot_sdk/docs/html/Examples/demo_protocols_httpc/httpc.html
2020-11-08 13:32:47 -06:00

319 lines
13 KiB
HTML
Raw 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>
<html class="writer-html5" lang="zh" >
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>7. Httpc client &mdash; BL602 IoT SDK release_bl_iot_sdk_1.6.11-1-g66bb28da 文档</title>
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../../_static/style.css" type="text/css" />
<link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" />
<!--[if lt IE 9]>
<script src="../../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
<script src="../../_static/jquery.js"></script>
<script src="../../_static/underscore.js"></script>
<script src="../../_static/doctools.js"></script>
<script src="../../_static/language_data.js"></script>
<script type="text/javascript" src="../../_static/js/theme.js"></script>
<link rel="index" title="索引" href="../../genindex.html" />
<link rel="search" title="搜索" href="../../search.html" />
<link rel="next" title="8. PSM" href="../demo_storage_psm/psm.html" />
<link rel="prev" title="6. Http client" href="../demo_protocols_http/http.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../../index.html" class="icon icon-home" alt="Documentation Home"> BL602 IoT SDK
</a>
<div class="version">
release_bl_iot_sdk_1.6.11-1-g66bb28da
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
<input type="text" name="q" placeholder="在文档中搜索" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<p class="caption"><span class="caption-text">Developer_Environment</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../Developer_Environment/Developer_Environment.html">1. Developer Environment</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../Developer_Environment/BLFlashEnv/BLFlashEnv.html">2. BLFlashEnv</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../Developer_Environment/freedom_studio/freedom_studio.html">3. Freedom Studio</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../Developer_Environment/eclipse/eclipse.html">4. Eclipse</a></li>
</ul>
<p class="caption"><span class="caption-text">Examples</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../helloworld/helloworld.html">1. Helloword</a></li>
<li class="toctree-l1"><a class="reference internal" href="../demo_aws/aws.html">2. aws</a></li>
<li class="toctree-l1"><a class="reference internal" href="../demo_peripherals_gpio/GPIO.html">3. GPIO</a></li>
<li class="toctree-l1"><a class="reference internal" href="../demo_peripherals_uart_echo/uart_echo.html">4. UART_echo</a></li>
<li class="toctree-l1"><a class="reference internal" href="../demo_peripherals_uart_ioctl/uart_ioctl.html">5. UART_ioctl</a></li>
<li class="toctree-l1"><a class="reference internal" href="../demo_protocols_http/http.html">6. Http client</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">7. Httpc client</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#id1">7.1. 总览</a></li>
<li class="toctree-l2"><a class="reference internal" href="#id2">7.2. 准备和使用步骤</a></li>
<li class="toctree-l2"><a class="reference internal" href="#id3">7.3. 应用实例</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../demo_storage_psm/psm.html">8. PSM</a></li>
<li class="toctree-l1"><a class="reference internal" href="../demo_storage_romfs/romfs.html">9. Romfs</a></li>
<li class="toctree-l1"><a class="reference internal" href="../demo_system_cli/cli.html">10. cli</a></li>
<li class="toctree-l1"><a class="reference internal" href="../demo_system_fdt/fdt.html">11. FDT</a></li>
<li class="toctree-l1"><a class="reference internal" href="../demo_wifi/wifi.html">12. WiFi</a></li>
<li class="toctree-l1"><a class="reference internal" href="../demo_ble/ble.html">13. BLE</a></li>
<li class="toctree-l1"><a class="reference internal" href="../demo_mesh/mesh.html">14. Mesh</a></li>
<li class="toctree-l1"><a class="reference internal" href="../demo_blsync_ble/blsync_ble.html">15. BLSYNC-BLE</a></li>
<li class="toctree-l1"><a class="reference internal" href="../sdk_app_easyflash_boottimes/easyflash_boottimes.html">16. Easyflash4 boot times</a></li>
</ul>
<p class="caption"><span class="caption-text">Components</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../Components/arch.html">1. arch</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../Components/Command_line/helper.html">2. helper</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../Components/Command_line/aos_cli.html">3. cli</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../Components/Hal_drv/gpio.html">4. GPIO</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../Components/Middleware/bloop/bloop.html">5. BLOOP</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../Components/Middleware/blsync/blsync.html">6. BLSYNC</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../Components/Middleware/dts/devicetree.html">7. device tree</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../Components/Middleware/log/blog.html">8. blog</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../Components/Middleware/security/security.html">9. Security</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../Components/Middleware/vfs/vfs.html">10. AOS VFS</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../Components/Middleware/yloop/yloop.html">11. yloop</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../Components/Network/httpc/httpc.html">12. HTTPC</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../Components/Network/https/https.html">13. HTTPS</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../Components/Network/tls/tls.html">14. TLS</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../Components/BLE/provision_WiFi/provision_WiFi.html">15. Provision_WiFi</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../Components/BLE/mesh/mesh.html">16. Mesh</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../Components/BLE/ble_stack/ble_stack.html">17. BLE</a></li>
</ul>
<p class="caption"><span class="caption-text">API</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../API/sys/cronalarms.html">1. cronalarms</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../API/wifi/wifi_mgmr.html">2. Wi-Fi Manager</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../index.html">BL602 IoT SDK</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li>
<li><span class="section-number">7. </span>Httpc client</li>
<li class="wy-breadcrumbs-aside">
<a href="../../_sources/Examples/demo_protocols_httpc/httpc.rst.txt" rel="nofollow"> 查看页面源码</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="httpc-client">
<span id="httpc-index"></span><h1><span class="section-number">7. </span>Httpc client<a class="headerlink" href="#httpc-client" title="永久链接至标题"></a></h1>
<div class="section" id="id1">
<h2><span class="section-number">7.1. </span>总览<a class="headerlink" href="#id1" title="永久链接至标题"></a></h2>
<p>本示例主要介绍如何通过tcp的方式访问Http服务器获取数据的过程。</p>
</div>
<div class="section" id="id2">
<h2><span class="section-number">7.2. </span>准备和使用步骤<a class="headerlink" href="#id2" title="永久链接至标题"></a></h2>
<ul>
<li><p>使用之前需要准备可用的URL以及网络。</p></li>
<li><p>使用步骤:</p>
<ul>
<li><p>在终端输入开启wifi的命令 <code class="docutils literal notranslate"><span class="pre">stack_wifi</span></code> 会打印下图一log部分然后输入连接wifi的命令 <code class="docutils literal notranslate"><span class="pre">wifi_sta_connect</span> <span class="pre">&lt;name&gt;</span> <span class="pre">&lt;key&gt;</span></code> 并确认wifi连接成功如输入wifi_sta_connect bl_test_005 12345678</p>
<div class="figure align-default">
<img alt="" src="../../_images/image117.png" />
</div>
<div class="figure align-default">
<img alt="" src="../../_images/image215.png" />
</div>
</li>
<li><p>使用 <code class="docutils literal notranslate"><span class="pre">httpc</span></code> 命令进行下载。</p>
<div class="figure align-default">
<img alt="" src="../../_images/image314.png" />
</div>
</li>
</ul>
</li>
</ul>
</div>
<div class="section" id="id3">
<h2><span class="section-number">7.3. </span>应用实例<a class="headerlink" href="#id3" title="永久链接至标题"></a></h2>
<ul class="simple">
<li><p>主要实现过程</p></li>
</ul>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="n">settings</span><span class="o">.</span><span class="n">use_proxy</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="n">settings</span><span class="o">.</span><span class="n">result_fn</span> <span class="o">=</span> <span class="n">cb_httpc_result</span><span class="p">;</span>
<span class="n">settings</span><span class="o">.</span><span class="n">headers_done_fn</span> <span class="o">=</span> <span class="n">cb_httpc_headers_done_fn</span><span class="p">;</span>
<span class="n">httpc_get_file_dns</span><span class="p">(</span>
<span class="s2">&quot;nf.cr.dandanman.com&quot;</span><span class="p">,</span>
<span class="mi">80</span><span class="p">,</span>
<span class="s2">&quot;/ddm/ContentResource/music/204.mp3&quot;</span><span class="p">,</span>
<span class="o">&amp;</span><span class="n">settings</span><span class="p">,</span>
<span class="n">cb_altcp_recv_fn</span><span class="p">,</span>
<span class="o">&amp;</span><span class="n">req</span><span class="p">,</span>
<span class="o">&amp;</span><span class="n">req</span>
<span class="p">);</span>
</pre></div>
</div>
<p>cb_httpc_result()次回调函数会在http传输完成后调用打印获取的消息内容长度cb_httpc_headers_done_fn()回调函数会在接收到http headers时调用打印headers的大小用户可以在cb_altcp_recv_fn()回调函数中处理接收到的消息。</p>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="../demo_storage_psm/psm.html" class="btn btn-neutral float-right" title="8. PSM" accesskey="n" rel="next">下一页 <span class="fa fa-arrow-circle-right"></span></a>
<a href="../demo_protocols_http/http.html" class="btn btn-neutral float-left" title="6. Http client" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> 上一页</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; 版权所有 2020, Bouffalo Lab
</p>
</div>
利用 <a href="http://sphinx-doc.org/">Sphinx</a> 构建,使用了
<a href="https://github.com/rtfd/sphinx_rtd_theme">主题</a>
<a href="https://readthedocs.org">Read the Docs</a>开发.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>