Linux_CGI_CGIC - 获取Get请求字符串

2023-11-02

获取Get请求字符串

Get请求就是我们在浏览器地址栏输入URL时发送请求的方式,或者我们在HTML中定义一个表单(form)时,把action属性设为“Get”时的工作方式;

Get请求字符串就是跟在URL后面以问号“?”开始的字符串,但不包括问号。比如这样的一个请求: http://127.0.0.1/cgi-bin/out.cgi?ThisIsTheGetString

在上面这个URL中,“ThisIsTheGetString”就是Get请求字符串。

在进入我们自己编写的cgi代码之前,CGIC库已经事先把这个字符串取到了,我们可以在程序中直接获得,要做的仅仅是在你编写的cgiMain方法前面加入以下声明:

 extern char *cgiQueryString; 

现在给出一个简单的例子,这个例子跟上一篇的测试程序非常相似,只不过程序的输出是使用者输入的Get请求字符串。

 #include<stdio.h>
  #include<string.h>
  #include"cgic.h"
  #include<stdlib.h>
  extern char *cgiQueryString;
  int cgiMain(){
          cgiHeaderContentType("text/html");
          fprintf(cgiOut,"<HTML><HEAD>\n");
          fprintf(cgiOut,"<TILE>MyCGIC</TILE></HEAL>\n");
          fprintf(cgiOut,"<BODY>");
          fprintf(cgiOut,"<H1>%s</H1>",cgiQueryString);
          fprintf(cgiOut,"</BODY>\n");
          fprintf(cgiOut,"</HTML>\n");
          return 0;
  }

假设把这个程序编译成out.cgi(编译方法参见上一篇),并部署到Web服务器的cgi-bin目录下,当用户在浏览器地址栏输入本文开头给出的URL字符串时,浏览器页面上会显示: ThisIsTheGetString

我们也可以编写一个用于测试的HTML页面:

<html>
    <head>
    <title>Test</title>
    </head>
    <body>
    <form action="cgi-bin/out.cgi" method="get">
        <input type="text" name="theText">
        <input type="submit" value="Continue &rarr;">
    </form>
    </body>
 </html>

通过浏览器访问http://127.0.0.1/test.html,在文本框内输入一些字符,并点击提交按钮,然后就可以看到cgi程序的执行结果:把在文本框输入的字符原样显示在浏览器上。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux_CGI_CGIC - 获取Get请求字符串 的相关文章

  • 如何将 Android Instrumentation 测试推送到模拟器/设备?

    我正在尝试使用 Ubuntu 9 04 中的命令行 shell 在 Android 模拟器上运行 Webkit 布局测试 adb s emulator 5554 shell am instrument w com android dumpr
  • Android 中的 java.util.Observable 是线程安全的吗?

    Android 中的 java util Observable 是线程安全的吗 这文档 http developer android com reference java util Observable html说只有deleteObser
  • Android ListView 自定义适配器 ImageButton

    这可能不是正确的方法 如果有更好的方法请告诉我 我创建了一个自定义适配器类 在我的 getView 方法中我膨胀了我想要使用的视图 public View getView int position View convertView View
  • 如何忽略 LeakCanary 中的某些类?

    有人能给我一个如何忽略 LeakCanary 中的某些类的有效示例吗 我正在查看这个示例 以忽略 LeakCanary 中第三方库中的某些类 但我不知道将其放在应用程序中的何处 我把它放在我的应用程序类中 但这些变量和方法有错误 isInA
  • Android CursorAdapter、ListView 和后台线程

    我一直在开发的这个应用程序有包含数兆字节数据的数据库可供筛选 许多活动只是列表视图 通过数据库中的各个级别的数据下降 直到到达 文档 即从数据库中提取并显示在手机上的 HTML 我遇到的问题是 其中一些活动需要能够通过捕获击键并重新运行带有
  • 多语言 Android 应用程序:在电子邮件和密码字段中显示英文键盘

    我们正在开发一款多语言 Android 应用程序 针对英语和阿拉伯语 面临的问题是在登录和注册屏幕中 我们希望仅以英文文本输入用户名和密码字段 从而显示英文键盘 无论设备区域设置语言如何 已尝试在 edittext 中设置 inputtyp
  • 在 Android 中始终以横向模式打开相机

    在我的 Android 应用程序中 单击按钮后我希望相机以横向模式打开 即使我将手机旋转为纵向模式 相机也应始终处于横向模式或纵向模式 使用此代码在横向模式下打开相机 Intent cameraIntent new Intent Media
  • 使用 RxJava 限制吞吐量

    我现在遇到的情况很难解释 所以我会写一个更简单的版本来解释这个问题 我有一个Observable from 它发出一系列由ArrayList文件数量 所有这些文件都应上传到服务器 为此 我有一个函数可以完成这项工作并返回一个Observab
  • Android BLE 扫描在后台几分钟后停止

    当我为公司开发新冠肺炎接触者追踪应用程序时 我在后台遇到了 Android 扫描停止问题 这是我尝试过的 添加前台服务 禁用手机中所有与电池相关的优化选项 启用后台运行的应用程序 测试设备 搭载 Android 10 的 Galaxy S2
  • 使用 mupdf android 库导航到特定页面

    我如何使用 muPDF 库导航到特定页面 或者有没有办法让图书馆不记得我最后在那个pdf文件中浏览的是哪一页 Uri uri Uri parse path Intent intent new Intent MainActivity getC
  • Android - 多次实例化一个片段?

    我正在创建一个在 ListView 中显示数据的应用程序 数据分为两种类型 热门 收藏夹 我有一个活动和两个片段 片段根据类别显示项目列表 我为此使用了 ListView 然后我有两个fragment layouts 它们在设计上完全相同
  • 收到“无法解析上传的APK的AndroidManifest.xml。它是否正确编译?”启用 Google 应用签名后出现错误

    启用后谷歌应用程序签名 https support google com googleplay android developer answer 7384423 hl en 每次我尝试将签名版本 APK 上传到 Play 商店时 都会收到一
  • 使用 UPI url 调用 PSP 应用程序

    我正在尝试创建一个商家应用程序 它将根据 NPCI 的指南生成一个 url 此 url 将作为意图共享 并且 PSP 应用程序 任何注册的银行应用程序 应该能够侦听该 url 并被调用 我已经形成了这样的网址 upi pay pa icic
  • 按名称获取 ArrayList

    这是正确的获取方式吗ArrayList
  • 如何在 kotlin 中检查 lambda 空值

    在 Kotlin 中如何检查 lambda 是否为空 例如 我有这样的签名 onError Throwable gt Unit 我如何区分它的默认值是应用于主体还是应用于此函数的值 您无法测试 lambda 的主体是否为空 因此它不包含源代
  • SDK尚未初始化,请务必先调用FacebookSdk.sdkInitialize()

    我在实现 Facebook SDK 时遇到此错误 并且我tried https stackoverflow com questions 15490399 error inflating class com facebook widget l
  • 动态创建 JSON 对象

    我正在尝试使用以下格式创建 JSON 对象 tableID 1 price 53 payment cash quantity 3 products ID 1 quantity 1 ID 3 quantity 2 我知道如何使用 JSONOb
  • 制作弹跳动画

    我想做图层的弹跳动画 我已经完成了该图层从右到中心的操作 现在我想将其向后移动一点 然后回到中心 这会产生反弹效果 我想我可以用这样的翻译来做到这一点
  • 查询联系人 - 有时返回空游标

    我正在尝试查询联系人的显示名称 Override public void onActivityResult int requestCode int resultCode Intent data switch requestCode case
  • 如何检查设备上是否安装了文本转语音 (TTS) 的特定语言数据?

    我正在创建一个使用文本转语音的应用程序 我希望用户能够离线使用它 因此我检查设备上是否安装了 TTS 数据 以下是执行此操作的代码 Check tts data is installed Intent checkTTSIntent new

随机推荐

  • Java并发编程实战

    文章目录 Java并发编程实战 并发简史 计算机 进程和线程 什么是线程安全类 它的定义是什么 原子性与复合操作 内置锁 锁的重入 用锁来保护状态 活跃性与性能 对象的共享 可见性 使用volatile可以保证可见性 任务执行 在一个线程中
  • Deep learning:三十五(用NN实现数据降维练习)

    前言 本文是针对上篇博文Deep learning 三十四 用NN实现数据的降维 的练习部分 也就是Hition大牛science文章reducing the dimensionality of data with neural netwo
  • 证书报错NET::ERR_CERT_AUTHORITY_INVALID

    因为百度的证书安装路径出错 导致每次打开百度都会报错 NET ERR CERT AUTHORITY INVALID 错误的证书认证 无效证书 报这个错误无非两种情况 证书安装错误 证书过期或有问题 1 证书过期 通过certmgr msc
  • WEB 前端面试题 (实战)(大全)

    文章目录 原生JS 1 什么是 JavaScript 2 简单介绍一下 JS 基本类型 3 字符串如何转换成布尔类型 4 数值类型是如何转换布尔类型 5 字符串是如何转换成数值的 6 都了解过哪些运算符 7 和 运算符区别是什么 8 给变量
  • FTP网盘小demo

    服务端 include
  • JDK1.8接口的默认实现

    很多时候 别人问我接口和类的区别的时候 我都会回答接口里面只能有抽象方法 而不能够有具体方法 但是今天看Mybatis源码的时候 发现了有一段代码是判断接口里面的默认方法的 于是我发现原来对接口的认识太过于肤浅了 JDK1 8之后 在接口里
  • 对未来人生的一些想法

    我现在是自己做 但我此前有多年在从事软件开发工作 当回过头来想一想自己 觉得特别想对那些初学JAVA DOT NET技术的朋友说点心里话 希望你们能从我们的体会中 多少受点启发 也许我说的不好 你不赞同但看在我真心的份上别扔砖头啊 一 在中
  • 如何把思维导图秒变成幻灯?

    场景 有一天给研究生上课 几个学生分别上讲台展示仿真建模作业 我打开笔记本电脑 一边开着仿真工具验证他们的代码 一边用思维导图软件记录他们讲解中出现的问题 问题过多的时候 我示意学生下来 走上讲台 插上优盘 打开了一个幻灯 幻灯图文并茂 针
  • 计算机表格斜杠怎么打,如何在excel表格中绘制斜线并上下打字

    利用excel或是wps做表格时 很多时候会要求做表头要划斜线来划分项目 并且在上面打上字 比如表头里项目 内容 日期做的表格 在做表头时 需要项目 内容和日期在同一个表格里面 并用斜线区分开来 那么怎么实现呢 一起来看看吧 本次所使用的软
  • Win11:如何删除D盘中的WindowsApps文件夹

    问题描述 Win11 如何删除D盘中的WindowsApps文件夹 问题截图 问题原因 WindowsApps是微软应用商店使用的文件夹 是可以删除的 有些windows版本也没有微软应用商店 删除后对系统并不会有太大影响 解决方案 1 W
  • Selector的使用

    文章目录 Selector 的使用 1 直接使用 2 Scrapy Shell 3 XPath 选择器 4 CSS选择器 5 正则匹配 Selector 的使用 我们之前介绍了利用Beautiful Soup pyquery 以及正则表达式
  • Vue实例选项之【computed】

    目录 computed 显示效果 methods 和 computed 选项的区别 computed 的 setter 和 getter 属性 computed 计算属性在处理一些复杂逻辑时是很有用的 div p 原始字符串 message
  • 颠倒一个句子中的词的顺序。比如: I am a student颠倒后变成:student a am I.

    package com two public class ReverseWords 题目 颠倒一个句子中的词的顺序 比如 I am a student颠倒后变成 student a am I 词以空格分隔 要求 1 实现速度最快 移动最少
  • 单片机原理及应用 实验四 指示灯数码管的中断控制

    单片机原理及应用 C51 版 功能 开机后D1灭灯 LED1黑屏 随后单击K1 D1状态反转 单击K2 LED1从0开始循环显示0 F字符 实验目的及要求 1 掌握外部中断的工作原理 学会中断程序设计 2 按照实验报告要求图 绘制本实验电路
  • 全文检索Elasticsearch安装和配置

    一 ElasticSearch 介绍 1 1 为什么要用ElasticSearch 当我们访问购物网站的时候 我们可以根据我们随意所想的内容输入关键字就可以查询出相关的内容 这是怎么做到呢 这些随意的数据不可能是根据数据库的字段查询的 那是
  • 2021-08-12PHP面试笔试题记录

    1 编写函数function get duplicate num array in num 获取最大相同元素数组的返回结果数组 其中 in为输入数组 num为相同数组元素的重复上限数值 num gt 2 1 1 例如 in 1 20 20
  • dmmbus地址_www.dmmbus.us服务器iP

    2019 05 09 2020 12 15 69 171 237 26 2019 05 12 2020 12 15 31 13 82 1 2019 05 12 2020 12 15 74 86 142 55 2019 05 16 2020
  • flutter 对一个对象进行fromjson,tojson,encode和decode

    fromJson就是转成我们能app能用的数据 tojson就是转成服务器能用的数据 encode是列表 对象转json decode是json转列表 对象 存在下面的一个对象 RedEnvelopeModel redEnvelopeMod
  • EasyExcel详细教程

    目录 1 Excel导入导出的应用场景 2 EasyExcel特点 3 Excel进行写操作 4 Excel进行读操作 本篇文章为你详细介绍EasyExcel如何进行读取操作 1 Excel导入导出的应用场景 1 数据导入 减轻录入工作量
  • Linux_CGI_CGIC - 获取Get请求字符串

    获取Get请求字符串 Get请求就是我们在浏览器地址栏输入URL时发送请求的方式 或者我们在HTML中定义一个表单 form 时 把action属性设为 Get 时的工作方式 Get请求字符串就是跟在URL后面以问号 开始的字符串 但不包括