bool CBaseHttp::HttpPost(HttpInfo &info, bool bGetCookies/* = false*/, int nTryCount/* = 5*/)
{
	for(int i=0; i<nTryCount; ++i)
	{
		if(Http(ht_post, &info, bGetCookies))
			return true;
	}

	return false;
}
sf::Http::Response::Status EventStoreDialog::FetchTemplates(bool forceFetch)
{
    if (templates && !forceFetch) return sf::Http::Response::Ok;

    // Create request
    sf::Http Http(host.ToLocale(), port);
    sf::Http::Request request;
    request.setMethod(sf::Http::Request::Get);
    request.setUri("/events/");

    // Send the request
    sf::Http::Response response = Http.sendRequest(request, sf::seconds(2));

    if (response.getStatus() == sf::Http::Response::Ok)
    {
        if (templates) delete templates;
        templates = new gd::SerializerElement(Serializer::FromJSON(response.getBody()));
    }

    return response.getStatus();
}
sf::Http::Response::Status EventStoreDialog::FetchTemplate(gd::String id)
{
    nameTxt->SetLabel("Loading the template...");
    descriptionEdit->SetValue("");

    gd::SafeYield::Do();

    // Create request
    sf::Http Http(host.ToLocale(), port);
    sf::Http::Request request;
    request.setMethod(sf::Http::Request::Get);
    request.setUri("/events/"+id.ToLocale());

    // Send the request
    sf::Http::Response response = Http.sendRequest(request, sf::seconds(2));

    if (response.getStatus() == sf::Http::Response::Ok)
        loadedTemplate = Serializer::FromJSON(response.getBody());

    return response.getStatus();
}
int main(int argc, char** argv)
{
	ConfigurationManager configuration(argc, argv);

	std::string toParse =
			configuration.readFromFile ?
					File().getHtml(configuration.path) :
					Http().getHtml(configuration.path);

	Lexer lexer(toParse);
	HTMLElement root;
	Parser(&lexer, &root).parse();

	if(configuration.single)
	{
		DetailsInterpreter interpreter(&root);
		DetailsResultModel model = interpreter.interpret();
		ConsoleLog().logResult(model);
	}
	else
	{
		HTMLInterpreter interpreter(&root);
		std::vector<ResultModel*> allModels = interpreter.interpret();
		ModelsFilter filter(allModels);
		if (configuration.applyMalwareFilter)
		{
			filter.applyMalwareTypeFilter(configuration.malwareType);
		}
		if (configuration.applyThreatFilter)
		{
			filter.applyThreatTypeFilter((configuration.threaType));
		}
		std::vector<ResultModel*> filteredModels = filter.getModels();
		ConsoleLog().logResults(filteredModels);
	}
	return 0;
}