资源简介
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
- 上一篇:socket客户端.c
- 下一篇:自动GetShell
相关资源
- c++开发http服务端+客户端
- CTP上期技术平台API及C#封装更新到CT
- DemoHttpMFC.zip
- c语言实现http服务器和浏览器进行数据
- 网络编程HttpServer c++实现
- c语言实现http服务器浏览器实时刷新数
- 服务端和客户端(MFC CSocket)
- IEC104规约Server及Client实现
- 简单HTTP代理服务器-源码c++
- vnc-4_1_3-x86_linux.tar.gz
- Kepware OPCClient C++程序
- C++ 实现 HTTP HTTPS POST GET(包含curl版本
- C语言搭建的简单web服务器
- rocketmq-client-cpp vs2015 x64 Debug.rar
- winsocket编程实现简单 server端和client端
- C++进行http请求,并获取返回结果
- HTTP 浏览器
- mqtt-client MFC工程调用开源代码
- Etcd C++ client 源码
- RabbitMQ client c++封装类 c++工程 (没有
- C++开发web服务框架之HTTP Web框架的设计
- rabbitmq的C++客户端SimpleAmqpClient编译库
- C++基于HTTP的POST上传,C#的网站接收并
- VC++ 实现自动升级 漂亮的界面效果
- C实现http服务源码 适用于linux 和wind
- C语言http客户端通信实现
- 用Socket写的HTTP类,商业级C++源码。
- HTTP chunked方式传输的C语言解析
- tftp客户端和服务器
- io多路复用c语言版简单http服务器dem
评论
共有 条评论