/** * \file kv_main.c * \brief * \version 0.1 * \date 2022-10-29 * \author notrynohigh (notrynohigh@outlook.com) * * Copyright (c) 2020 by notrynohigh. All Rights Reserved. */ #include <time.h> #include "../port.h" #include "b_os.h" int httpfd = -1; void bMallocFailedHook() { b_log_e("=========================\r\n"); } void HttpCb(bHttpEvent_t event, void *param, void *arg) { if (event == B_HTTP_EVENT_RECV_DATA) { bHttpRecvData_t *dat = (bHttpRecvData_t *)param; if (dat->pdat != NULL && dat->len > 0) { b_log("%s\r\n", dat->pdat); char *pstr = strstr(dat->pdat, "\r\n\r\n"); b_log("result: %s\r\n", pstr); } if (dat) { if (dat->release) { dat->release(dat->pdat); } } } } #define BOUNDARY_STR "----WebKitFormBoundary7MA4YWxkTrZu0gW" static char *__pack_post_body(const char *api_key, const char *api_secret, const char *image_url) { #define BODY_PARAM_NUMBER (3) #define BODY_ITEM_FORMAT "--%s\r\nContent-Disposition: form-data; name=\"%s\"\r\n\r\n%s\r\n" #define BODY_END_FORMAT "--%s--\r\n" int body_len = (strlen(BOUNDARY_STR) + strlen("Content-Disposition: form-data; name=") + 16) * BODY_PARAM_NUMBER + 4 + strlen(BOUNDARY_STR) + 4 + strlen("api_key") + strlen("api_secret") + strlen("image_url") + strlen(api_key) + strlen(api_secret) + strlen(image_url); b_log("malloc: %d\r\n", body_len); char *pbody = bMalloc(body_len); b_assert_log(pbody != NULL); char *ptmp = pbody; int ret = 0; ret = sprintf(ptmp, BODY_ITEM_FORMAT, BOUNDARY_STR, "api_key", api_key); ptmp += ret; ret = sprintf(ptmp, BODY_ITEM_FORMAT, BOUNDARY_STR, "api_secret", api_secret); ptmp += ret; ret = sprintf(ptmp, BODY_ITEM_FORMAT, BOUNDARY_STR, "image_url", image_url); ptmp += ret; ret = sprintf(ptmp, BODY_END_FORMAT, BOUNDARY_STR); b_log("body[%d]:\r\n%s", strlen(pbody), pbody); return pbody; } int main() { port_init(); bInit(); char post_header[128]; char *pbody = NULL; sprintf(post_header, "Content-Type: multipart/form-data; boundary=%s\r\n", BOUNDARY_STR); pbody = __pack_post_body( "babyos", "babyos", "https://tse1-mm.cn.bing.net/th/id/OIP-C.Y2M7yqEjWKR0mrPD9xp9tAAAAA?rs=1&pid=ImgDetMain"); httpfd = bHttpInit(HttpCb, NULL); bHttpRequest(httpfd, B_HTTP_POST, "https://aiyan-tech.com/car_number/", post_header, pbody); bFree(pbody); while (1) { bExec(); } return 0; }