webclient學習3.webclient-API分析

1.API 說明

1.1創建會話

struct webclient_session *webclient_session_create(size_t header_sz);

創建客戶端會話結構體。

參數 描述
header_sz 最大支持的頭部長度
返回 描述
!= NULL webclient 會話結構體指針
= NULL 創建失敗

1.2關閉會話連接

int webclient_close(struct webclient_session *session);

關閉傳入的客戶端會話連接,並釋放內存。

參數 描述
session 當前連接會話結構體指針
返回 描述
=0 成功

1.3發送 GET 請求

int webclient_get(struct webclient_session *session, const char *URI);

發送 HTTP GET 請求命令。

參數 描述
session 當前連接會話結構體指針
URI 連接的 HTTP 服務器地址
返回 描述
>0 HTTP 響應狀態碼
<0 發送請求失敗

1.4發送獲取部分數據的 GET 請求

int webclient_get_position(struct webclient_session *session, const char *URI, int position);

發送帶有 Range 頭信息的 HTTP GET 請求命令,多用於完成斷點續傳功能。

參數 描述
session 當前連接會話結構體指針
URI 連接的 HTTP 服務器地址
position 數據偏移量
返回 描述
>0 HTTP 響應狀態碼
<0 發送請求失敗

1.5發送 POST 請求

int webclient_post(struct webclient_session *session, const char *URI, const void *post_data, size_t data_len);

發送 HTTP POST 請求命令,上傳數據到 HTTP 服務器。

參數 描述
session 當前連接會話結構體指針
URI 連接的 HTTP 服務器地址
post_data 需要上傳的數據地址
data_len 需要上傳數據的長度
返回 描述
>0 HTTP 響應狀態碼
<0 發送請求失敗

1.6發送數據

int webclient_write(struct webclient_session *session, const void *buffer, size_t size);

發送數據到連接的服務器。

參數 描述
session 當前連接會話結構體指針
buffer 發送數據的地址
size 發送數據的長度
返回 描述
>0 成功發送數據的長度
=0 連接關閉
<0 發送數據失敗

1.7接收數據

int webclient_read(struct webclient_session *session, void *buffer, size_t size);

從連接的服務器接收數據。

參數 描述
session 當前連接會話結構體指針
buffer 接收數據的存放地址
size 最大接收數據的長度
返回 描述
>0 成功接收數據的長度
=0 連接關閉
<0 接收數據失敗

1.8設置接收和發送數據超時時間

int webclient_set_timeout(struct webclient_session *session, int millisecond);

設置連接的接收和發送數據超時時間。

參數 描述
session 當前連接會話結構體指針
millisecond 設置的超時時間,單位毫秒
返回 描述
=0 設置超時成功

1.9在請求頭中添加字段數據

int webclient_header_fields_add(struct webclient_session *session, const char *fmt, ...);

該函數用於創建會話之後和發送 GET 或 POST 請求之前,用於添加請求頭字段數據。

參數 描述
session 當前連接會話結構體指針
fmt 添加字段數據的表達式
添加的字段數據,爲可變參數
返回 描述
>0 成功添加的字段數據的長度
<=0 添加失敗或者頭部數據長度超出

1.10通過字段名獲取字段值數據

const char *webclient_header_fields_get(struct webclient_session *session, const char *fields);

該函數用於發送 GET 或 POST 請求之後,可以通過傳入的字段名稱獲取對應的字段數據。

參數 描述
session 當前連接會話結構體指針
fields HTTP 字段名稱
返回 描述
= NULL 獲取數據失敗
!= NULL 成功獲取的字段數據

1.11接收響應數據到指定地址

int webclient_response(struct webclient_session *session, void **response, size_t *resp_len);

該函數用於發送 GET 或 POST 請求之後, 可以接收響應數據到指定地址。

參數 描述
session 當前連接會話結構體指針
response 存放接收數據的字符串地址
resp_len 接收數據的長度的指針
返回 描述
>0 成功接收數據的長度
<=0 接收數據失敗

1.12發送 GET/POST 請求並接收響應數據

int webclient_request(const char *URI, const char *header, const void *post_data, size_t data_len, void **response, size_t *resp_len);
參數 描述
URI 連接的 HTTP 服務器地址
header 需要發送的頭部數據
= NULL,發送默認頭數據信息,可用於發送 GET/POST請求
!= NULL,發送指定頭數據信息,可用於發送 GET/POST請求
post_data 發送到服務器的數據
= NULL,該發送請求爲 GET 請求
!= NULL,該發送請求爲 POST 請求
data_len 發送數據的長度
response 存放接收數據的字符串地址
resp_len 接收數據長度的指針
返回 描述
>0 成功接收數據的長度
<=0 接收數據失敗

1.13拼接請求頭部數據

int webclient_request_header_add(char **request_header, const char *fmt, ...);

該函數適用於 webclient_request 函數發送請求之前,頭部數據的拼接和添加。

參數 描述
request_header 請求頭部數據緩衝區地址
fmt 添加字段數據的表達式
添加的字段數據,爲可變參數
返回 描述
>0 成功添加的字段數據的長度
<=0 頭部數據添加失敗或內存不足

1.14獲取 HTTP 響應狀態碼

int webclient_resp_status_get(struct webclient_session *session);

該函數用於發送 GET 或 POST 請求之後,用於獲取返回的響應狀態碼。

參數 描述
session 當前連接會話結構體指針
返回 描述
>0 HTTP 響應狀態碼

1.15獲取 Content-Length 字段數據

int webclient_content_length_get(struct webclient_session *session);

該函數用於發送 GET 或 POST 請求之後,用於獲取返回的 Content-Length 字段數據。

參數 描述
session 當前連接會話結構體指針
返回 描述
>0 Content-Length 字段數據
<0 獲取失敗

1.16下載文件到本地

int webclient_get_file(const char *URI, const char *filename);

從 HTTP 服務器下載文件並存放到本地。

參數 描述
URI 連接的 HTTP 服務器地址
filename 存放文件位置、名稱
返回 描述
=0 下載文件成功
<0 下載文件失敗

1.17上傳文件到服務器

int webclient_post_file(const char *URI, const char *filename, const char *form_data);

從 HTTP 服務器下載文件並存放到本地。

參數 描述
URI 連接的 HTTP 服務器地址
filename 需要上傳的文件位置、名稱
form_data 附加選項
返回 描述
=0 上傳文件成功
<0 上傳文件失敗
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章