HTTP client with RTEMS

Hui Yie Teh hteh703 at aucklanduni.ac.nz
Thu Oct 5 20:44:05 UTC 2017


I'm trying to initialize bsdnetwork using
'rtems_bsdnet_initialize_network()' as in the mghttpd example but it
doesn't work.

It is giving me an error "Can't get network cluster memory".

Any help would be much appreciated.

Thanks.

On 6 October 2017 at 08:46, Hui Yie Teh <hteh703 at aucklanduni.ac.nz> wrote:

> Hi Christian,
>
> Thank you for the reply!
>
> My app will be doing some simple HTTP, with GET and POST requests that has
> a text response body, e.g. "Received". I think following the mghttpd test
> will suffice.
>
> However, I'm currently looking at the code for the mghttpd test and I was
> wondering if there is a way I can run it or get a non-test version of it? I
> can't really tell what I need or what the code does without running it.
>
> Cheers.
>
> On 6 October 2017 at 07:47, Christian Mauderer <list at c-mauderer.de> wrote:
>
>> Am 05.10.2017 um 17:52 schrieb Hui Yie Teh:
>> > Hi,
>> >
>> > I am trying to build a HTTP client using RTEMS. Is there any tutorials
>> > that I can follow? I already have a server running, and I just need to
>> > send some GET and POST requests.
>> >
>> > I am new to RTEMS and embedded programming in general. Any help is much
>> > appreciated.
>> >
>> > Cheers,
>> > Yie
>> >
>>
>> Hello Yie,
>>
>> it depends a little on your application.
>>
>> If you just want to learn a little about the HTTP protocol and only want
>> to try some requests, you can just use a raw socket. The HTTP basics are
>> really quite simple if you don't want to use things like compression or
>> different MIME types. Writing a simple request for some simple html
>> document is quite easy. Something like that is done in the test for the
>> mghttpd in RTEMS:
>>
>>     https://git.rtems.org/rtems/tree/testsuites/libtests/mghttpd01
>>
>> Note that there are most likely a lot of error cases that are not caught
>> in that test (like unexpected HTTP responses).
>>
>> If you need your client for some more professional application or
>> something that should be more robust, I would suggest to use some
>> library that does most of the low level handling. I'm not aware of one
>> integrated into RTEMS but it shouldn't be hard to find one that works.
>>
>> I think that I have seen some client functions in civetweb (still
>> MIT-licensed fork of mongoose httpd which has been forked off before the
>> license change in mongoose). From my experience, civetweb needs only
>> very few modifications to work with RTEMS.
>>
>> Most likely you can also (with some more effort) compile some bigger C
>> or C++ libraries like libcurl. But I haven't tried that yet. By the way:
>> there is also a large list of http client libraries on the libcurl
>> Homepage: https://curl.haxx.se/libcurl/competitors.html
>>
>> Regards
>>
>> Christian
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/users/attachments/20171006/541c5988/attachment-0002.html>


More information about the users mailing list