HTTP POST方法的学习
在POST方法下,CGI程序可以直接从服务器的标准输入中获取数据,不过要先从CONTENT_LENGTH这个环境变量中得到POST参数的长度,然后再读取相应长度的内容。
先弄个post.html,并放到htdocs目录下。
<html>
<head>
<title>CGI POST</title>
</head>
<body>
<tr>
<td>
<div>Method:POOST</div>
<div>Please input two number:</div>
<form method="post" action="/cgi-bin/post">
<input type="txt" size="3" name="m">*
<input type="txt" size="3" name="n">=
<input type="submit" value="result">
</form>
</td>
</tr>
</body>
</html>
代码如下:
#include <iostream>
#include <stdlib.h>
#include <string>
#include <vector>
#include <stdio.h>int post_method()
{std::cout<<"Content-type:text/html\r\n\r\n";std::cout<<"<html>\n";std::cout<<"<head>\n";std::cout<<"<title>Testing Post</title>\n";std::cout<<"</head>\n";std::cout<<"<body>\n";std::cout<<"get parameter:<br/>";char *lenstr = getenv("CONTENT_LENGTH");if(lenstr == NULL){std::cout<<"Error, CONTENT_LENGTH should be entered"<< "<br/>";}else{int len = atoi(lenstr);char poststr[20];fgets(poststr, len + 1,stdin);std::cout<<"poststr:"<< poststr<<"<br/>";char m[10];char n[10];if(2 != sscanf(poststr,"m=%[^&]&n=%s",m,n)){std::cout<<"Error:Parameters are not right!<br/>";}else{std::cout<<"m*n="<<atoi(m)*atoi(n)<<"<br/>";}}std::cout<<"</body>\n";std::cout<<"</html>\n";return 0;
}int main()
{post_method();return 0;
}
编译:
g++ 2.cpp -g -o post
拷贝:
cp /share/post cgi-bin/
HTTP POST方法的学习相关推荐
- SVO中 Inverse Compositional Image Alignment方法的学习笔记
SVO中 Inverse Compositional Image Alignment方法的学习笔记 这篇文章 光流法简介 逆向光流法 结尾 这篇文章 在SVO系统中的"Relaxation ...
- mysql存储过程大于小于_mysql5.0存储过程操作符知识_函数方法[Mysql学习]
mysql存储过程基本函数 一.字符串类 CHARSET(str) //返回字串字符集 CONCAT (string2 [,... ]) //连接字串 INSTR (string ,substrin ...
- 【工具】(转)PowerDesigner最基础的使用方法入门学习
PowerDesigner最基础的使用方法入门学习 https://www.cnblogs.com/biehongli/p/6025954.html 转载于:https://www.cnblogs.c ...
- 【关于Java方法的学习】
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.方法的定义 二.方法的调用 三.方法的重载 1,重载的定义 2,方法的重载的规则 3,实现理论 四.命令行传参 五 ...
- Java—String类的intern方法的学习
对intern方法的学习来源于之前偶然看到的一篇博客:[请别再拿"String s = new String("xyz");创建了多少个String实例"来面试 ...
- 速学计算机的方法,速记基础:计算机速记方法与学习要点
双文速记,是根据华语双文(方块字和拉丁字母)原理,在汉语拼音方案基础上采用适合速记要求的拼音方法,在计算机标准键盘上分布普通话的21个辅音.35个元音.4个声调和12个词类字母,将汉语词汇中某些高频单 ...
- 基于迁移学习的旋转机械故障诊断方法研究学习笔记
基于迁移学习的旋转机械故障诊断方法研究学习笔记 现在大一点的神经网络模型也要求数据量的足够大,但是对于小样本的数据,有一些神经网络模型也能够处理的很好 2. 这是现在神经网络也要求的数据最好能够独立同 ...
- 用matlab绘制树叶,UG画树叶的叶子,这个三维建模方法值得学习
原标题:UG画树叶的叶子,这个三维建模方法值得学习 今天来教大家绘制一片树叶,学会了大家再做个树干,这样就能完成一些塑料盆栽模型了,来学习一下绿叶的画法吧,这可是最简单的曲面做法了. 建模过程: 1. ...
- 方法是学习和进步的捷径
方法是学习和进步的捷径 我懒,所以喜欢琢磨方法,人类懒,所以人类在不停的创造舒适中进步. 方法论是门科学,统筹学是其主要应用.想成功的人无数,但利用好方法的人不多,于是成功的人成为少数. 方法是什么? ...
- LayoutInflater中inflate()方法的学习使用
LayoutInflater中inflate()方法的学习使用 一.LayoutInflater LayoutInflater实例化一个xml布局加到对应的View对象中.该对象不直接使用.调用g ...
最新文章
- 光电转换模块_光纤模块和光纤收发器连接时要注意什么?
- python 搜索插入位置
- oracle获取分组后的统计信息,并只要前五条
- 关于flex布局的深入学习
- Head First设计模式一:策略模式
- mysql組合主鍵_MySQL(二)
- 相似性度量:机器学习距离公式总结
- linux之type命令
- thinkphp5.0连接mysql_thinkphp5.0数据库操作
- Android 使用传感器
- eeprom和编程器固件 k2_斐讯K2刷不死breed与第三方固件教程
- java sao_JavaScript 的一些SAO操作
- 计算机打印错误,打印机错误正在打印处理方法,教您电脑打印机错误正在打印处理方法...
- 阿里云服务器搭建 图文详细教程
- 【转载】装机知识显卡篇,一篇文章让小白透彻的了解显卡
- threejs 加载obj模型
- java 判断对象的属性是否为空_Java 判断实体对象及所有属性是否为空的操作
- 输入法半角和全角的快捷转换_搜狗输入法经常用到的冷门小技巧,复制文章空白行取消方法...
- 大数据同步利器: 表格存储全增量一体消费通道
- typedef的用法简介
热门文章
- for循环:水仙花案例
- 1-5 CAD基础 圆(circle)
- javascript如何判断浏览器是否安装某插件
- 在EXCEL中使用VLOOKUP函数 快速批量查找对应内容
- 小程序代码上传-审核-发布,体验者权限设置
- 终端进程启动失败: shell 可执行文件“C:\instaillSpace\Git\bin\bash.exe”的路径
- svr公式推导_关于污泥回流比计算公式的推导!
- 共话龙蜥:如何协同构建统一生态?
- 借名买房委托协议是否有效?
- python 学生考勤系统