c++中的HTTP Post - Response解析
HTTP Post Response parsing in C++
我正在编写拼图机器人,http服务器,在点击后,呈现一个默认页面,其中包含文本区域,以编写类似http://codepad.org/的代码。当我输入以下程序时。
#include <stdio.h>
int main( int argc, char **argv) {
return 0;
}
我从HTTP POST得到以下响应。
code : %23include+%3Cstdio.h%3E%0D%0Aint+main%28+int+argc%2C+char+**argv%29+%7B%0D%0A++++return+0%3B%0D%0A%7D
lang : C
如何解析密钥"code
"中的信息?我需要把这个程序写在一个临时文件中,然后编译/运行。
首先需要解码数据。您可以使用这个引用。
所有空格都用符号+
代替,%
之后的所有数字都是特殊的- 2位十六进制编码的数字- URL编码的特殊符号(如+
, ,
, }
等)。
例如,您的code
将被翻译为:
#include <stdio.h>rnint main( int argc, char **argv) {rn return 0;rn}
其中rn
是CRLF,因此,从这里,您将最终得到:
#include <stdio.h>
int main( int argc, char **argv) {
return 0;
}
就是你的代码。然后,您可以将其写入临时文件并尝试编译它。
为了更好的应用,我想到了一些东西,比如:
- 使其多线程-您将能够在同一时间处理多个这样的请求
- 为接收到的数据添加一些队列-当您的程序正在处理当前请求(类似队列)时,不要丢失来的数据
- 当然,同步线程,小心
- 我认为你将需要IPC(进程间通信)-与编译器的进程进行通信并提取错误,它给你(除非你有一些特殊的API,提供给你的编译器)
当然,这些只是我想到的一些建议。这对任何开发人员来说都是一个很好的练习- IPC +多线程+网络编程+ http!大:)
好运相关文章:
- 继承函数的重载解析
- 基类中的函数名称解析
- 提升精神:解析布尔表达式并简化为规范范式
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- gcc和c++17的过载解析失败
- C++:Application.cpp中抛出了未解析的外部符号(解决方案在问题的末尾,供未来的读者参考)
- 构造函数和转换运算符之间的重载解析
- 未解析的外部符号_MsiLocateComponentW@12.
- '尝试解析可变参数模板时无法推断出'T的模板参数
- 非类型指针和引用模板参数,以及在编译时如何/为什么解析它们.c++
- C++的解析器在可以区分比较和模板实例化之前会做什么?
- 如何在 cpp 中解析此文件?
- 在C++中使用 gRPC 时未解析的外部符号
- IDE (CLion) 无法解析C++模板类型
- 配置文件解析器仅返回以前的值
- 增强精神解析器规则以检测语句中的特殊结尾
- 将向量解析<string>为字符串
- 使用 jsoncpp 解析 json 数组字符串
- 提升精神 x3 - 懒惰解析器
- c++中的HTTP Post - Response解析