代码片段:处理HTTP请求的接口
以下程序用来获取用户传递过来的信息。
1.头文件
/* * 这个是处理HTTP请求的接口头文件 */ #define KEY_VALUE_MAX 1024 /* 键值的最大长度 */ typedef unsigned char uChar; /* * 接口 * * 获取指定的键值 */ uChar * GetItsKeyValue( char const *keyName, char const *targetString ); /* * 对键值解码 */ uChar * ParseIt( uChar *keyValue );
头文件
2.接口定义
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <assert.h> #include "handleForHttpRequest.h" /* * 把16进制转换为10进制 */ static uChar HexToDec( uChar *what ) { uChar value; value = (what [] >= + what [] - ] - '; value *= ; value += (what [] >= + what [] - ] - '; return value; } /* * 获取指定的键值 */ uChar * GetItsKeyValue( char const *keyName, char const *targetString ) { char const *subStr; char const *p; uChar *result; uChar *q; /* 找到指定键值对的位置 */ subStr = targetString; while( (subStr = strstr( subStr, keyName ) ) != NULL ){ ] == '&' ){ //如果keyName是第一个键值名或者是中间的某个键值名 break; } } /* 找到对应的键值,并返回它 */ if( subStr == NULL ){ return NULL; }else{ result = (uChar *) malloc ( KEY_VALUE_MAX * sizeof(uChar) ); assert( result != NULL ); ; *p != '\0' && *p != '&'; p ++, q ++ ){ *q = (uChar)*p; } *q = '\0'; return result; } } /* * 对键值解码 */ uChar * ParseIt( uChar *keyValue ) { uChar *p, *q; uChar ch; q = p = keyValue; while( (ch = *p) != '\0' ){ if( ch == '%' ){ *q = HexToDec( p + ); p += ; } else{ *q = (ch == '+')? ' ' : ch; p ++; } q ++; } *q = '\0'; return keyValue; }
接口定义
代码片段:处理HTTP请求的接口的更多相关文章
- C#动态编译代码,执行一个代码片段,或者从指定文件中加载某个接口的实现类
在项目进行中有时候会需要配置一些复杂的表达式,在程序运行的时候执行表达式,根据结果执行相应的操作,简单写了一个类Expression,利用.net的动态编译技术实现,代码如下: public clas ...
- 微信JS支付代码_前端调用微信支付接口
转自:http://dditblog.com/itshare_553.html 跟大家分享一段微信支付的js代码片段.V3版的微信支付没有paySignKey参数.基本上是直接复制就可以使用了.改一改 ...
- 金蝶handler中 collection 代码片段理解
1,AtsOverTimeBillBatchEditHandler中collection的理解 SelectorItemCollection selectors = new SelectorItemC ...
- webapi+Task并行请求不同接口实例
标题的名称定义不知道是否准确,不过我想表达的意思就是使用Task特性来同时请求多个不同的接口,然后合并数据:我想这种场景的开发对于对接过其他公司接口的人不会陌生,本人也是列属于之内,更多的是使用最原始 ...
- js/jquery/html前端开发常用到代码片段
1.IE条件注释 条件注释简介 IE中的条件注释(Conditional comments)对IE的版本和IE非IE有优秀的区分能力,是WEB设计中常用的hack方法.条件注释只能用于IE5以上,IE ...
- 50个jquery代码片段(转)
本文会给你们展示50个jquery代码片段,这些代码能够给你的javascript项目提供帮助.其中的一些代码段是从jQuery1.4.2才开始支持的做法,另一些则是真正有用的函数或方法,他们能够帮助 ...
- Android适配器之ArrayAdapter、SimpleAdapter和BaseAdapter的简单用法与有用代码片段(转)
摘自:http://blog.csdn.net/shakespeare001/article/details/7926783 Adapter是连接后端数据和前端显示的适配器接口,是数据Data和UI( ...
- 超级有用的9个PHP代码片段
在开发网站.app或博客时,代码片段可以真正地为你节省时间.今天,我们就来分享一下我收集的一些超级有用的PHP代码片段.一起来看一看吧! 1.创建数据URI 数据URI在嵌入图像到HTML / CSS ...
- 提高php开发效率的9大代码片段
在网站开发中,我们都期望能高效快速的进行程序开发,如果有能直接使用的代码片段,提高开发效率,那将是极好的.php开发福利来了,今天小编就将为大家分享9大超实用的.可节省大量开发时间的php代码片段. ...
随机推荐
- CentOS7 cacti 安装
首先centos7 web环境的安装这里就不说了.安装cacti,首先得web环境配置好 其次添加两个用户,一个是cacti用于操作mysql的 cactimysql 一个是cacti操作Linux ...
- mysql 创建用户、授权等操作
一, 创建用户: 命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 说明:username - 你将创建的用户名, host - 指 ...
- Thread比Task多出的无法代替的部分
Task比Thread耗资源更少,且默认在线程池中. 但是Thread能够设置为STA来执行而Task不能,这对于某些特殊功能很重要,比如WebBrowser控件对象就不能在非单线程单元的线程中new ...
- django学习记录
1.参考资料问题: 现在django发布了1.11版本,离线文档下载引擎地址 文档下载地址 在线文档:https://docs.djangoproject.com/en/1.10/intro/tuto ...
- “div+css”下拉菜单
<style> html, body { margin: 0; padding: 0; } .btn-group{ font-size: 14px; position: relative; ...
- Delphi编程时候诡异地出现ORA-00937错误,记录解决它的思路和方法
首先需要说明,这个问题的出现需要几个前提:使用微软的Oracle驱动(使用Oracle自己的驱动不会出现这个问题).使用绑定变量法,使用Format等方式拼接SQL也不会出现这个问题,还有一些诡异的规 ...
- PhpStorm/Xdebug安装使用
安装环境:XAMPP;phpStorm版本10; windows 7 64bit. XAMPP.phpStorm 都直接安装在了D盘根目录,9999m目录建在D:\xampp\htocts下,即目录工 ...
- 在子线程更新主线程的UI组件
1.实例化一个 private Handler handlerBublishTopic = new Handler(Looper.getMainLooper()); 2. handlerBublish ...
- 用 IIS 实现请求转发
最近部门要开发一个简单的APP,部分数据是现有项目已经存在的,为了方便维护,希望只提供一个交互的入口,并且协议的规则不变. 基于这个需求,有两套解决方案: 1.用代码将现有的api封装一层,对请求数据 ...
- Ubuntu菜鸟入门(四)—— 搜狗输入法
一 搜狗输入法安装 1 下载安装包: http://pinyin.sogou.com/linux/ 2 安装安装包 (1)"GDebi",这是一个用于安装你自己手动下载包的 ...