跳转到内容

数据请求

头文件<network/fetch.h>

int BNetwork_fetchCreateSession(
void **session
);
参数(输出)类型说明
sessionvoid**创建的 Http 请求的 session 指针,用于发起 Http 请求
返回值类型说明
resultintHttp 请求相关操作状态值。(详见《枚举 Http 请求状态》)
int BNetwork_fetchDestroySession(
void *session
);
参数(输出)类型说明
sessionvoid*要销毁的 Http 请求的 session 指针
返回值类型说明
resultintHttp 请求相关操作状态值。(详见《枚举 Http 请求状态》)
int BNetwork_fetch(
void* session,
BNetwork_FetchConfig *config,
BNetwork_FetchCallbacks callbacks,
void *user_data
);
参数类型说明
sessionvoid*BNetwork_fetchCreateSession 创建的 session 指针
configBNetwork_FetchConfig*Http 请求配置(详见《结构体 Http 请求配置》)
callbacksBNetwork_FetchCallbacksHttp 请求结果回调(详见《结构体 请求结果监听》)
user_datavoid*自定义数据
返回值类型说明
resultintHttp 请求相关操作状态值。(详见《枚举 Http 请求状态》)
枚举值说明
BNETWORK_FETCH_OK 0Http 请求相关操作成功
BNETWORK_FETCH_ERROR -1Http 请求相关操作失败

用于发起 http 请求。

struct BNetwork_FetchConfig {
const char* url;
const char* header;
const char* method;
const char* data;
size_t data_size;
}
内容类型说明
urlconst char*发起 HTTP 请求的 URL 地址
methodconst char*请求方式,默认为”GET“(当设置为”“(空)时,将以默认值发起请求) 支持”OPTIONS“,”GET“,”HEAD“,”POST“,”PUT“,”DELETE“,”TRACE“,”CONNECT“
headerconst char*HTTP 请求头字段(JSON 格式字符串) 示例:{“Accept-Encoding”: “gzip, deflate”,“Accept-Language”: “zh-CN,en-US;q=0.8,en;q=0.6”}
dataconst chat*HTTP 请求的额外数据
data_sizesize_t额外数据的数据长度

Http 请求响应内容 BNetwork_FetchResponse

Section titled “Http 请求响应内容 BNetwork_FetchResponse”

http 请求成功时,该内容将作为参数传入成功回调中。

struct BNetwork_FetchResponse {
int http_code;
uint8_t* header;
size_t header_size;
uint8_t* data;
size_t data_size;
void* user_data;
BNetwork_FetchConfig* config;
}
内容类型说明
http_codeint请求状态
headeruint8_t*响应头
header_sizesize_t响应头大小
datauint8_t*响应正文
data_sizesize_t响应正文大小
user_datavoid*用户自定义参数
configBNetwork_FetchConfig*http 请求配置参数指针,回传用于进行资源释放等操作。

请求结果监听 BNetwork_FetchCallbacks

Section titled “请求结果监听 BNetwork_FetchCallbacks”

包含 http 的请求结果回调的结构体,需设置“成功”、“失败”、“完成”三种回调。(详见《回调 fetch 请求结果》)

struct BNetwork_FetchCallbacks {
onFetchSucceeded succeeded_cb; // Http请求成功
onFetchFailed failed_cb; // Http请求失败
onFetchCompleted completed_cb; // Http请求完成
}
void(* onFetchSucceeded)(void* session, BNetwork_FetchResponse *response);
参数类型说明
sessionvoid*此 http 请求创建的 session 指针
responseBNetwork_FetchResponse *fetch 请求响应结果(详见《结构体 Http 请求响应内容》)

void(* onFetchFailed)(void* session, int errCode, BNetwork_FetchResponse *response);
参数类型说明
sessionvoid*此 http 请求创建的 session 指针
errCodeintfetch 请求的错误代码
responseBNetwork_FetchResponse *fetch 请求响应结果(详见《结构体 Http 请求响应内容》)

void(* onFetchCompleted)(void* session, int opCode, BNetwork_FetchResponse *response);
参数类型说明
sessionvoid*此 http 请求创建的 session 指针
opCodeintfetch 请求完成操作码
responseBNetwork_FetchResponse *fetch 请求响应结果(详见《结构体 Http 请求响应内容》)