69 lines
2.0 KiB
ReStructuredText
69 lines
2.0 KiB
ReStructuredText
.. _sockets-http-get:
|
|
|
|
Socket HTTP GET Example
|
|
#######################
|
|
|
|
Overview
|
|
********
|
|
|
|
The sockets/http_get sample application for Zephyr implements a simple
|
|
HTTP GET client using a BSD Sockets compatible API. The purpose of this
|
|
sample is to show how it's possible to develop a sockets application
|
|
portable to both POSIX and Zephyr. As such, it is kept minimal and
|
|
supports only IPv4.
|
|
|
|
The source code for this sample application can be found at:
|
|
:file:`samples/net/sockets/http_get`.
|
|
|
|
Requirements
|
|
************
|
|
|
|
- :ref:`networking_with_qemu`
|
|
- or, a board with hardware networking
|
|
- NAT/routing should be set up to allow connections to the Internet
|
|
- DNS server should be available on the host to resolve domain names
|
|
|
|
Building and Running
|
|
********************
|
|
|
|
Build the Zephyr version of the application like this:
|
|
|
|
.. zephyr-app-commands::
|
|
:zephyr-app: samples/net/sockets/http_get
|
|
:board: <board_to_use>
|
|
:goals: build
|
|
:compact:
|
|
|
|
``board_to_use`` defaults to ``qemu_x86``. In this case, you can run the
|
|
application in QEMU using ``make run``. If you used another BOARD, you
|
|
will need to consult its documentation for application deployment
|
|
instructions. You can read about Zephyr support for specific boards in
|
|
the documentation at :ref:`boards`.
|
|
|
|
After the sample starts, it issues HTTP GET request to "google.com:80"
|
|
and dumps the response. You can edit the source code to issue a request
|
|
to any other site on the Internet (or on the local network, in which
|
|
case no NAT/routing setup is needed).
|
|
|
|
Running application on POSIX Host
|
|
=================================
|
|
|
|
The same application source code can be built for a POSIX system, e.g.
|
|
Linux. (Note: if you look at the source, you will see that the code is
|
|
the same except the header files are different for Zephyr vs POSIX.)
|
|
|
|
To build for a host POSIX OS:
|
|
|
|
.. code-block:: console
|
|
|
|
$ make -f Makefile.posix
|
|
|
|
To run:
|
|
|
|
.. code-block:: console
|
|
|
|
$ ./http_get
|
|
|
|
As can be seen, the behavior of the application is the same as the Zephyr
|
|
version.
|