| 
							- #pragma once
 - #include <common.hpp>
 - #include <jansson.h>
 - 
 - 
 - namespace rack {
 - 
 - 
 - /** Networking functions for HTTP requests, URLs, and downloads
 - */
 - namespace network {
 - 
 - 
 - enum Method {
 - 	METHOD_GET,
 - 	METHOD_POST,
 - 	METHOD_PUT,
 - 	METHOD_DELETE,
 - };
 - 
 - /** Requests a JSON API URL over HTTP(S), using the data as the query (GET) or the body (POST, etc)
 - Caller must json_decref().
 - */
 - json_t *requestJson(Method method, std::string url, json_t *dataJ);
 - /** Returns true if downloaded successfully */
 - bool requestDownload(std::string url, const std::string &filename, float *progress);
 - /** URL-encodes `s` */
 - std::string encodeUrl(const std::string &s);
 - /** Computes the SHA256 of the file at `filename` */
 - std::string computeSHA256File(const std::string &filename);
 - 
 - 
 - } // namespace network
 - } // namespace rack
 
 
  |