Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C++; 我在C++中简单地构造了一个Web服务器,我需要解析请求头。我是怎么做到的_C++_String_Parsing_Webserver - Fatal编程技术网

在C++; 我在C++中简单地构造了一个Web服务器,我需要解析请求头。我是怎么做到的

在C++; 我在C++中简单地构造了一个Web服务器,我需要解析请求头。我是怎么做到的,c++,string,parsing,webserver,C++,String,Parsing,Webserver,这是我的标题 GET /test?username=2 HTTP/1.1 Host: stream.mysite.com:7777 Connection: keep-alive Cache-Control: max-age=0 User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11 Accept: text/ht

这是我的标题

GET /test?username=2 HTTP/1.1
Host: stream.mysite.com:7777
Connection: keep-alive
Cache-Control: max-age=0
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip,deflate,sdch
Accept-Language: pt-BR,pt;q=0.8,en-US;q=0.6,en;q=0.4
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: auth=asdfasdfaasdfasd
我需要获取页面(/test?username=2)和cookie变量auth(asdfasdfaasdfasd)的内容


谢谢

此处定义了Http请求:

基本上你需要知道的是:

GET <URL> <HTTP-Version><CRLF>
<Set of Headers each line terminated with <CRLF>>
<Empty Line with just <CRLF>>
GET

您想要的位始终是GET之后的位。您需要在标题中搜索字符串“Cookie:”

一个简单的示例来开始:

#include <iostream>
#include <string>
#include <sstream>
int main() {
  std::string tk1, tk2, line = "GET /test?username=2 HTTP/1.1";
  std::stringstream ss(line);
  ss >> tk1;
  ss >> tk2;
  if (tk1 == "GET") {
    std::cout << "requested path: " << tk2 << std::endl;
  }
  return 0;
}
#包括
#包括
#包括
int main(){
std::string tk1,tk2,line=“GET/test?username=2 HTTP/1.1”;
std::stringstream ss(线路);
ss>>tk1;
ss>>tk2;
如果(tk1==“获取”){

std::我可以将信息放入单独的变量中,以便以后在我的程序中处理。我意识到,但是您是否已经尝试过这样做,或者您只是想让我们编写它?如果您已经尝试过并且遇到问题,您可以问我们具体的问题。但是,如果您只是想让我们为您编写代码,这是n不是在正确的地方。