void HTTPRequestTest::testRead1() { std::string s("GET / HTTP/1.0\r\n\r\n"); std::istringstream istr(s); HTTPRequest request; request.read(istr); assert (request.getMethod() == HTTPRequest::HTTP_GET); assert (request.getURI() == "/"); assert (request.getVersion() == HTTPMessage::HTTP_1_0); assert (request.empty()); assert (istr.get() == -1); }
TEST(HTTPRequest, testRead1) { std::string s("GET / HTTP/1.0\r\n\r\n"); std::istringstream istr(s); HTTPRequest request; request.read(istr); EXPECT_TRUE (request.getMethod() == HTTPRequest::HTTP_GET); EXPECT_TRUE (request.getURI() == "/"); EXPECT_TRUE (request.getVersion() == HTTPMessage::HTTP_1_0); EXPECT_TRUE (request.empty()); EXPECT_TRUE (istr.get() == -1); }
void HTTPRequestTest::testRead2() { std::string s("HEAD /index.html HTTP/1.1\r\nConnection: Keep-Alive\r\nHost: localhost\r\nUser-Agent: Poco\r\n\r\n"); std::istringstream istr(s); HTTPRequest request; request.read(istr); assert (request.getMethod() == HTTPRequest::HTTP_HEAD); assert (request.getURI() == "/index.html"); assert (request.getVersion() == HTTPMessage::HTTP_1_1); assert (request.size() == 3); assert (request["Connection"] == "Keep-Alive"); assert (request["Host"] == "localhost"); assert (request["User-Agent"] == "Poco"); assert (istr.get() == -1); }
void HTTPRequestTest::testRead4() { std::string s("POST /test.cgi HTTP/1.1\r\nConnection: Close\r\nContent-Length: 100 \r\nContent-Type: text/plain\r\nHost: localhost:8000\r\nUser-Agent: Poco\r\n\r\n"); std::istringstream istr(s); HTTPRequest request; request.read(istr); assert (request.getMethod() == HTTPRequest::HTTP_POST); assert (request.getURI() == "/test.cgi"); assert (request.getVersion() == HTTPMessage::HTTP_1_1); assert (request.size() == 5); assert (request["Connection"] == "Close"); assert (request["Host"] == "localhost:8000"); assert (request["User-Agent"] == "Poco"); assert (request.getContentType() == "text/plain"); assert (request.getContentLength() == 100); assert (istr.get() == -1); }
void HTMLForm::prepareSubmit(HTTPRequest& request) { if (request.getMethod() == HTTPRequest::HTTP_POST) { if (_encoding == ENCODING_URL) { request.setContentType(_encoding); request.setChunkedTransferEncoding(false); Poco::CountingOutputStream ostr; writeUrl(ostr); request.setContentLength(ostr.chars()); } else { _boundary = MultipartWriter::createBoundary(); std::string ct(_encoding); ct.append("; boundary=\""); ct.append(_boundary); ct.append("\""); request.setContentType(ct); } if (request.getVersion() == HTTPMessage::HTTP_1_0) { request.setKeepAlive(false); request.setChunkedTransferEncoding(false); } else if (_encoding != ENCODING_URL) { request.setChunkedTransferEncoding(true); } } else { std::string uri = request.getURI(); std::ostringstream ostr; writeUrl(ostr); uri.append("?"); uri.append(ostr.str()); request.setURI(uri); } }