• 大小: 0.02M
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2024-04-19
  • 语言: C/C++
  • 标签: Client  http  tpc  C语言  CLI  

资源简介

C语言封装的HttpClient接口,支持https,包括基于OpenSSL和Mbedtls

资源截图

代码片段和文件信息

#include 
#include 
#include “arrayMap.h“

// 默认判断键值是否相等
static Boolean defaultEqual(void *key1 void *key2)
{
    return strcmp((string)key1 (string)key2) ? False : True;
}

// 默认添加键值对
static void defaultPut(ArrayMap arrayMap void *key void *value void *type)
{
    Entry entry = NULL lastEntry = NULL;
    entry = arrayMap->list;
    int nKey = 0 nValue = 0 nType = 0;

    while (entry) {
        if (defaultEqual(key entry->key)) {
            nKey = strlen(key);
            nValue = strlen(value);

            entry->value = (void*)realloc(entry->value nValue + 1);
            memset(entry->value 0x00 nValue + 1);
            memcpy(entry->value value nValue);

            if (entry->type)
                free(entry->type);
            entry->type = NULL;

            if (type && ((nType = strlen(type)) > 0)) {
                entry->type = (void*)malloc(nType + 1);
                if (!entry->type)
                    return;
                memset(entry->type 0x00 nType + 1);
                memcpy(entry->type type nType);
            }
            return;
        }
        lastEntry = entry;
        entry = entry->next;
    }

    entry = newEntry();
    memset(entry 0x00 sizeof(*entry));
    if (!arrayMap->list) {
        arrayMap->list = entry;
    } else {
        lastEntry->next = entry;
    }

    nKey = strlen(key);
    nValue = strlen(value);

    entry->key = (void*)calloc(nKey + 1 1);
    entry->value = (void*)calloc(nValue + 1 1);
    entry->next = NULL;

    memcpy(entry->key key nKey);
    memcpy(entry->value value nValue);
    if (type && ((nType = strlen(type)) > 0)) {
        entry->type = (void*)calloc(nType + 1 1);
        memcpy(entry->type type nType);
    }

    arrayMap->size += 1;
}

// 默认获取键对应值
static void* defaultGet(ArrayMap arrayMap void *key)
{
    Entry entry = arrayMap->list;
    while (entry) {
        if (defaultEqual(key entry->key)) {
            return entry->value;
        }
        entry = entry->next;
    }
    return NULL;
}

static Entry defaultGetEntry(ArrayMap arrayMap void *key)
{
    Entry entry = arrayMap->list;
    while (entry) {
        if (defaultEqual(key entry->key)) {
            return entry;
        }
        entry = entry->next;
    }
    return NULL;
}

// 默认删除键
static Boolean defaultRemove(ArrayMap arrayMap void *key)
{
    Entry entry = NULL prev = NULL;
    entry = arrayMap->list;
    while (entry) {
        if (defaultEqual(key entry->key)) {
            arrayMap->size -= 1;
            if (prev == NULL) {// 表头
                arrayMap->list = entry->next;
                prev = entry;

                if (entry->key) free(entry->key);
                if (entry->value) free(entry->value);
                free(entry);

                entry = arrayMap->list;
            } else {
                prev->next = entry->next;
                entry->next = NULL;

                if (entry->key) free(entry->key);
                if (entry->

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2020-11-23 20:52  HttpClient\
     文件         852  2020-10-28 14:53  HttpClient\Makefile
     目录           0  2020-11-23 20:52  HttpClient\include\
     文件         831  2020-10-28 14:53  HttpClient\include\HttpClient.h
     目录           0  2020-11-23 20:55  HttpClient\src\
     文件       50998  2020-10-28 14:53  HttpClient\src\HttpClient.c
     文件        2368  2020-10-28 14:53  HttpClient\src\HttpClientCommon.h
     文件        9157  2020-10-28 14:53  HttpClient\src\HttpClientMbedtls.c
     文件        4597  2020-03-21 17:24  HttpClient\src\HttpClientSSL.c
     文件         610  2020-10-28 14:53  HttpClient\src\HttpClientSSL.h
     文件        5467  2020-10-28 14:53  HttpClient\src\arrayMap.c
     文件        2821  2020-10-28 14:53  HttpClient\src\arrayMap.h
     文件        2411  2020-10-28 14:53  HttpClient\src\astring.c
     文件         623  2020-10-28 14:53  HttpClient\src\astring.h

评论

共有 条评论