c++中的HTTP Post - Response解析

HTTP Post Response parsing in C++

本文关键字:Response 解析 Post 中的 HTTP c++      更新时间:2023-10-16

我正在编写拼图机器人,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!大:)

好运