curl
 
Бесплатная и простая в использовании библиотека для передачи URL-адреса со стороны клиента, поддерживающая почти каждый протокол.

Вебсайт: http://curl.haxx.se/libcurl/
Поддерживаемые платформы: Win32, Linux, DOS
Заголовки: curl.bi
Версия заголовков: 7.24.0
Примеры: в examples/network/curl/

Пример

'' Пример Curl HTTP Get

#include once "curl.bi"
#include once "crt/string.bi"

'' Этот обратный вызов каких-либо данных
Private Function write_callback cdecl _
    ( _
        ByVal buffer As Byte Ptr, _
        ByVal size As Integer, _
        ByVal nitems As Integer, _
        ByVal outstream As Any Ptr _
    ) As Integer

    Static As ZString Ptr zstr = 0
    Static As Integer maxbytes = 0

    Dim As Integer bytes = size * nitems

    '' текущий zstring буфер мал?
    If( maxbytes < bytes ) Then
        zstr = Reallocate( zstr, bytes + 1 )
        maxbytes = bytes
    End If

    '' "buffer" не содержит ноль в конце, поэтому мы должны его добавить
    memcpy( zstr, buffer, bytes )
    zstr[bytes] = 0

    '' просто распечатываем его..
    Print *zstr

    Return bytes
End Function

    '' инициализация
    Dim As CURL Ptr curl = curl_easy_init( )
    If( curl = 0 ) Then
        End 1
    End If

    '' Устанавливаем адрес и обратный вызов
    curl_easy_setopt( curl, CURLOPT_URL, "freebasic.net" )
    curl_easy_setopt( curl, CURLOPT_WRITEFUNCTION, @write_callback )

    '' выполнение..
    curl_easy_perform( curl )

    '' завершение
    curl_easy_cleanup( curl )