使用c ++发布html页面

时间:2014-12-12 12:24:03

标签: html c++ http

我正在尝试使用c ++发布一个html页面。我使用实现tcpsoketing的套接字构建了一个类。 我检查了它,它的工作原理。所以我认为我的问题在于我发送的内容:

string s = "<!DOCTYPE html><html><head><title>home.html</title></head><body><form name='input' action='login.html' method='get'>user name: <input type='text' name='user'><br>password: <input type='text' name='password'><input type='submit' value='Submit'> </form></body></html>";

string str="POST /home.html HTTP/1.1\r\nHost: 127.0.0.1:22225\r\nUser-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.66 Safari/537.36\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.8Accept-Encoding: gzip,deflate,sdch\r\n\r\n\r\n\r\nConnection: keep-alive\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: 2048"+s;

2 个答案:

答案 0 :(得分:2)

你的怀疑是正确的。您的请求邮件格式错误。请参阅RFC 7230,第3节:https://tools.ietf.org/html/rfc7230#section-3

 HTTP-message   = start-line
                  *( header-field CRLF )
                  CRLF
                  [ message-body ]

密切关注每个标题字段后需要使用的行结尾数。

提示:标题栏和邮件正文由CRLF CRLF分隔。

答案 1 :(得分:0)

确保标题和正文之间有一个空行(在RFC 7230中指定),例如

HTTP/1.1 200 OK
Server: Apache/1.3.29 (Unix) PHP/4.3.4
Content-Length: 123456
Content-Language: de
Connection: close
Content-Type: text/html

<!DOCTYPE html><html></html>