数据请求

更新时间:

头文件<network/fetch.h>

接口定义

创建 Http 请求 session

int BNetwork_fetchCreateSession(
    void **session
);
复制代码

参数

参数(输出) 类型 说明
session void** 创建的 Http 请求的 session 指针,用于发起 Http 请求

返回值

返回值 类型 说明
result int Http 请求相关操作状态值。(详见《枚举 Http 请求状态》)

销毁 Http 请求 session

int BNetwork_fetchDestroySession(
    void *session
);
复制代码

参数

参数(输出) 类型 说明
session void* 要销毁的 Http 请求的 session 指针

返回值

返回值 类型 说明
result int Http 请求相关操作状态值。(详见《枚举 Http 请求状态》)

发起 Http 请求

int BNetwork_fetch(
    void* session,
    BNetwork_FetchConfig *config,
    BNetwork_FetchCallbacks callbacks,
    void *user_data
);
复制代码

参数

参数 类型 说明
session void* BNetwork_fetchCreateSession 创建的 session 指针
config BNetwork_FetchConfig* Http 请求配置(详见《结构体 Http 请求配置》)
callbacks BNetwork_FetchCallbacks Http 请求结果回调(详见《结构体 请求结果监听》)
user_data void* 自定义数据

返回值

返回值 类型 说明
result int Http 请求相关操作状态值。(详见《枚举 Http 请求状态》)

枚举

Http 请求状态

枚举值 说明
BNETWORK_FETCH_OK  0 Http 请求相关操作成功
BNETWORK_FETCH_ERROR  -1 Http 请求相关操作失败

结构体

Http 请求配置 BNetwork_FetchConfig

用于发起 http 请求。

struct BNetwork_FetchConfig {   
    const char* url;
    const char* header;
    const char* method;
    const char* data;
    size_t data_size;
}
复制代码

内容说明

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

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_code int 请求状态
header uint8_t* 响应头
header_size size_t 响应头大小
data uint8_t* 响应正文
data_size size_t 响应正文大小
user_data void* 用户自定义参数
config BNetwork_FetchConfig* http 请求配置参数指针,回传用于进行资源释放等操作。

请求结果监听 BNetwork_FetchCallbacks

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

struct BNetwork_FetchCallbacks {
    onFetchSucceeded succeeded_cb;  // Http请求成功
    onFetchFailed failed_cb;        // Http请求失败
    onFetchCompleted completed_cb;  // Http请求完成
}
复制代码

回调

fetch 请求结果

请求成功

void(* onFetchSucceeded)(void* session, BNetwork_FetchResponse *response);
复制代码
参数
参数 类型 说明
session void* 此 http 请求创建的 session 指针
response BNetwork_FetchResponse * fetch 请求响应结果(详见《结构体 Http 请求响应内容》)
返回值

请求失败

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

请求完成

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

上一篇
上传下载
下一篇
网络状态
以上内容对您是否有帮助?
  • 毫无帮助
  • 帮助不大
  • 一般
  • 很好
  • 非常好
意见反馈