我正在尝试使用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;
答案 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>