用C ++解析HTTP Post Response

时间:2011-08-08 05:48:09

标签: c++ http

我正在编写益智机器人,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中的信息。我需要在临时文件中编写该程序,然后编译/运行。

1 个答案:

答案 0 :(得分:1)

首先需要解码数据。您可以使用 this reference

所有空格都替换为符号+%之后的所有数字都是特殊的 - 2位十六进制编码数字 - 网址编码的特殊符号(如+,{{1} },,等。)。

例如,您}将被翻译为:

code

#include <stdio.h>\r\nint main( int argc, char **argv) {\r\n return 0;\r\n} 是CRLF,因此,你最终会得到:

\r\n

这正是你的代码。然后你可以将它写入你的临时文件并尝试编译它。


有些事情,我想起来更好地应用这样的事情:

  • 使其成为多线程 - 您将能够同时处理多个此类请求
  • 为收到的数据添加一些队列 - 当程序处理当前请求(有点队列)时,不要丢失所带来的数据
  • 当然,同步线程并小心
  • 我认为您将需要IPC(进程间通信) - 与您的编译器进程通信并提取错误,它会为您提供(除非您有一些特殊的API,为您的编译器提供)

当然,这些只是一些建议,我想到了。这对任何开发人员来说都是很棒的练习 - IPC +多线程+网络编程+ http!太棒了:))

祝你好运