当前位置: 首页>>代码示例>>C++>>正文


C++ NameValueCollection::get方法代码示例

本文整理汇总了C++中NameValueCollection::get方法的典型用法代码示例。如果您正苦于以下问题:C++ NameValueCollection::get方法的具体用法?C++ NameValueCollection::get怎么用?C++ NameValueCollection::get使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在NameValueCollection的用法示例。


在下文中一共展示了NameValueCollection::get方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: handlePart

	void handlePart(const MessageHeader& header, std::istream& stream)
	{
		_type = header.get("Content-Type", "(unspecified)");
		if (header.has("Content-Disposition"))
		{
			std::string disp;
			NameValueCollection params;
			MessageHeader::splitParameters(header["Content-Disposition"], disp, params);
			_name = params.get("name", "(unnamed)");
			_fileName = params.get("filename", "(unnamed)");
		}
		
		CountingInputStream istr(stream);
		NullOutputStream ostr;
		StreamCopier::copyStream(istr, ostr);
		_length = istr.chars();
	}
开发者ID:PsyCommando,项目名称:ppmdu,代码行数:17,代码来源:HTTPFormServer.cpp

示例2: createRequestHandler

//------------------------------------------------------------------------------
HTTPRequestHandler* ofxIpVideoServerRoute::createRequestHandler(const HTTPServerRequest& request) {

    URI uri(request.getURI());
    
    if(ofxIpVideoServerRouteHandler::matchRoute(uri,settings.route)) {
        
        ofxIpVideoServerFrame::Settings targetSettings;
        
        string query = uri.getQuery();
        
        NameValueCollection queryMap = ofGetQueryMap(uri);
    
        if(queryMap.has("vflip")) {
            string vflip = queryMap.get("vflip");
            targetSettings.bFlipVertical = icompare(vflip,"1")    == 0 ||
                                           icompare(vflip,"true") == 0 ||
                                           icompare(vflip,"t")    == 0 ||
                                           icompare(vflip,"y")    == 0 ||
                                           icompare(vflip,"yes")  == 0;
        }
        
        if(queryMap.has("hflip")) {
            string hflip = queryMap.get("hflip");
            targetSettings.bFlipHorizontal = icompare(hflip,"1")    == 0 ||
                                             icompare(hflip,"true") == 0 ||
                                             icompare(hflip,"t")    == 0 ||
                                             icompare(hflip,"y")    == 0 ||
                                             icompare(hflip,"yes")  == 0;
        }
        
        if(queryMap.has("size")) {
            string size = queryMap.get("size");
            toLowerInPlace(size);
            vector<string> tokens = ofSplitString(size,"x");
            if(tokens.size() == 2) {
                int width = ofToInt(tokens[0]);
                int height = ofToInt(tokens[1]);
                
                if(width > 0 && height > 0) {
                    width = MIN(width,MAX_VIDEO_DIM);
                    height = MIN(height,MAX_VIDEO_DIM);
                    targetSettings.width  = width;
                    targetSettings.height = height;
                }
            }
        }
        
        if(queryMap.has("quality")) {
            string quality = queryMap.get("quality");
            if(icompare(quality,"best")) {
                targetSettings.quality = OF_IMAGE_QUALITY_BEST;
            } else if(icompare(quality,"high")) {
                targetSettings.quality = OF_IMAGE_QUALITY_HIGH;
            } else if(icompare(quality,"medium")) {
                targetSettings.quality = OF_IMAGE_QUALITY_MEDIUM;
            } else if(icompare(quality,"low")) {
                targetSettings.quality = OF_IMAGE_QUALITY_LOW;
            } else if(icompare(quality,"worst")) {
                targetSettings.quality = OF_IMAGE_QUALITY_WORST;
            } else {
                // no change
            }
        }
        
        ofxIpVideoServerFrameQueue* queue = new ofxIpVideoServerFrameQueue(targetSettings);
        
        queues.push_back(queue);
        
        return new ofxIpVideoServerRouteHandler(settings,*queue);
    } else {
        return NULL;
    }
}
开发者ID:bakercp,项目名称:ofxIpVideoServer,代码行数:74,代码来源:ofxIpVideoServerRoute.cpp

示例3: testNameValueCollection

void NameValueCollectionTest::testNameValueCollection()
{
	NameValueCollection nvc;
	
	assert (nvc.empty());
	assert (nvc.size() == 0);
	
	nvc.set("name", "value");
	assert (!nvc.empty());
	assert (nvc["name"] == "value");
	assert (nvc["Name"] == "value");
	
	nvc.set("name2", "value2");
	assert (nvc.get("name2") == "value2");
	assert (nvc.get("NAME2") == "value2");
	
	assert (nvc.size() == 2);
	
	try
	{
		std::string value = nvc.get("name3");
		fail("not found - must throw");
	}
	catch (NotFoundException&)
	{
	}

	try
	{
		std::string value = nvc["name3"];
		fail("not found - must throw");
	}
	catch (NotFoundException&)
	{
	}
	
	assert (nvc.get("name", "default") == "value");
	assert (nvc.get("name3", "default") == "default");

	assert (nvc.has("name"));
	assert (nvc.has("name2"));
	assert (!nvc.has("name3"));	
	
	nvc.add("name3", "value3");
	assert (nvc.get("name3") == "value3");
	
	nvc.add("name3", "value31");
	
	NameValueCollection::ConstIterator it = nvc.find("Name3");
	assert (it != nvc.end());
	std::string v1 = it->second;
	assert (it->first == "name3");
	++it;
	assert (it != nvc.end());
	std::string v2 = it->second;
	assert (it->first == "name3");
	
	assert ((v1 == "value3" && v2 == "value31") || (v1 == "value31" && v2 == "value3"));
	
	nvc.erase("name3");
	assert (!nvc.has("name3"));
	assert (nvc.find("name3") == nvc.end());
	
	it = nvc.begin();
	assert (it != nvc.end());
	++it;
	assert (it != nvc.end());
	++it;
	assert (it == nvc.end());
	
	nvc.clear();
	assert (nvc.empty());
	
	assert (nvc.size() == 0);
}
开发者ID:cshnick,项目名称:CommunicationModel,代码行数:75,代码来源:NameValueCollectionTest.cpp

示例4: handlePart

void MyPartHandler::handlePart(const MessageHeader& messageHeader, std::istream& stream)
{
    stringstream headerSS;
    messageHeader.write(headerSS);
    _headers.push_back(headerSS.str());

    string contentType = messageHeader.get("Content-Type", "nil");

    if((MyString::ToLower(contentType)).find("multipart") == 0) {
        MultipartReader multipartReader(stream);

        while(multipartReader.hasNextPart()) {
            MessageHeader subMessageHeader;
            multipartReader.nextPart(subMessageHeader);

            string subContentType = subMessageHeader.get("Content-Type", "nil");
            // Convert to lower case for comparison only
            string lc_subctype = MyString::ToLower(subContentType);

            //Priority is text/plain format, else save text/html format
            if(lc_subctype == "nil") {
                continue;
            } else if(lc_subctype.find("application") != string::npos && lc_subctype.find("name") != string::npos) {
                // Save attachment(s) in sub-content part
                string disp;
                string filename;
                string attachment;
                NameValueCollection params;

                MessageHeader::splitParameters(lc_subctype, disp, params);
                filename = params.get("name", "nil");
                if(filename != "nil") {
                    // Filename and Attachments might be encoded in Base64 or QuotedPrintable
                    _filenames.push_back(DecodeString(filename));
                    string encoder = MyString::ToLower(subMessageHeader.get("Content-Transfer-Encoding", "nil"));
                    if(encoder == "base64") {
                        Poco::Base64Decoder base64Decoder(multipartReader.stream());
                        StreamCopier::copyToString(base64Decoder, attachment);
                    } else if(encoder == "quoted-printable") {
                        Poco::Net::QuotedPrintableDecoder qpDecoder(multipartReader.stream());
                        StreamCopier::copyToString(qpDecoder, attachment);
                    } else {
                        StreamCopier::copyToString(multipartReader.stream(), attachment);
                    }

                    if (!attachment.empty()) {
                        _attachments.push_back(attachment);
                    }
                }
            } else if(lc_subctype.find("boundary") != string::npos) {
                int bStart = 0;
                if(_myboundary.empty()) {
                    bStart = subContentType.find('_');
                    _myboundary = MyString::FixField(subContentType, bStart, (subContentType.length() - (bStart + 1)));
                }
            } else if(lc_subctype.find("text/plain") == 0) {
                string charset;

                if(subContentType.find("charset") != string::npos) {
                    //Outlook: Content-Type text/plain charset="us-ascii"
                    //Yahoo: Content-Type text/plain charset=iso-8859-1
                    string subct_clean = MyString::RemoveChar(subContentType, '"');
                    int charpos = subct_clean.find("charset=") + 8; //+8 to bypass the word "charset="
                    charset = MyString::FixField(subct_clean, charpos, (subContentType.length() - charpos) );
                }

                //If body variable is not empty, it has the text/plain format of the email body.
                string cte = subMessageHeader.get("Content-Transfer-Encoding", "nil");
                //For some reasons, emails from outlook (content transfer encoding is specified as quoted-printable in header), it generates nil result in QuotedPrintableDecoder
                if(charset.compare("us-ascii") != 0) {
                    if(cte == "base64")	{
                        Poco::Base64Decoder base64Decoder(multipartReader.stream());
                        StreamCopier::copyToString(base64Decoder, _body);
                    } else if(cte == "quoted-printable") {
                        Poco::Net::QuotedPrintableDecoder qpDecoder(multipartReader.stream());
                        StreamCopier::copyToString(qpDecoder, _body);
                    } else {
                        StreamCopier::copyToString(multipartReader.stream(), _body);
                    }
                } else {
                    StreamCopier::copyToString(multipartReader.stream(), _body);
                }

                if(!_myboundary.empty() && _myboundary.compare(multipartReader.boundary()) != 0) {
                    _body = MyString::Trim(MyString::FixField(_body, 0, (_body.find(_myboundary) - 2))); //-2 for the boundary heading, e.g. --_000_OD67Eexchau_
                }
            } else {
                if(_body.empty() || _body.length() > 0) break;
                // Will hit error "Malformed message: Field value too long/no CRLF found" under MesssageHeader.read() in MessageHeader.cpp
                // if "continue" is used.  "text/plain" part will always come before "text/html" part
                //Keep this code for reference of retrieving text/html content, ignore text/html part at this moment
                /*
                  else if(subContentType.find("text/html") == 0) {
                    string cte = subMessageHeader.get("Content-Transfer-Encoding", "nil");
                    if(cte == "base64") {
                      Poco::Base64Decoder base64Decoder(multipartReader.stream());
                      StreamCopier::copyToString(base64Decoder, _body);
                    } else if(cte == "quoted-printable") {
                  Poco::Net::QuotedPrintableDecoder qpDecoder(multipartReader.stream());
                  StreamCopier::copyToString(qpDecoder, _body);
//.........这里部分代码省略.........
开发者ID:hchaudhry,项目名称:mail_client,代码行数:101,代码来源:myparthandler.cpp

示例5: isAdminLoggedIn

bool FileServerRequestHandler::isAdminLoggedIn(const HTTPRequest& request,
                                               HTTPResponse &response)
{
    assert(LOOLWSD::AdminEnabled);

    const auto& config = Application::instance().config();

    NameValueCollection cookies;
    request.getCookies(cookies);
    try
    {
        const std::string jwtToken = cookies.get("jwt");
        LOG_INF("Verifying JWT token: " << jwtToken);
        JWTAuth authAgent("admin", "admin", "admin");
        if (authAgent.verify(jwtToken))
        {
            LOG_TRC("JWT token is valid");
            return true;
        }

        LOG_INF("Invalid JWT token, let the administrator re-login");
    }
    catch (const Poco::Exception& exc)
    {
        LOG_INF("No existing JWT cookie found");
    }

    // If no cookie found, or is invalid, let the admin re-login
    HTTPBasicCredentials credentials(request);
    const std::string& userProvidedUsr = credentials.getUsername();
    const std::string& userProvidedPwd = credentials.getPassword();

    // Deny attempts to login without providing a username / pwd and fail right away
    // We don't even want to allow a password-less PAM module to be used here,
    // or anything.
    if (userProvidedUsr.empty() || userProvidedPwd.empty())
    {
        LOG_WRN("An attempt to log into Admin Console without username or password.");
        return false;
    }

    // Check if the user is allowed to use the admin console
    if (config.getBool("admin_console.enable_pam", "false"))
    {
        // use PAM - it needs the username too
        if (!isPamAuthOk(userProvidedUsr, userProvidedPwd))
            return false;
    }
    else
    {
        // use the hash or password in the config file
        if (!isConfigAuthOk(userProvidedUsr, userProvidedPwd))
            return false;
    }

    // authentication passed, generate and set the cookie
    JWTAuth authAgent("admin", "admin", "admin");
    const std::string jwtToken = authAgent.getAccessToken();

    Poco::Net::HTTPCookie cookie("jwt", jwtToken);
    // bundlify appears to add an extra /dist -> dist/dist/admin
    cookie.setPath(LOOLWSD::ServiceRoot + "/loleaflet/dist/");
    cookie.setSecure(LOOLWSD::isSSLEnabled() ||
                     LOOLWSD::isSSLTermination());
    response.addCookie(cookie);

    return true;
}
开发者ID:LibreOffice,项目名称:online,代码行数:68,代码来源:FileServer.cpp


注:本文中的NameValueCollection::get方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。