Beispiel #1
0
//发送HTTP请求
//IsPost:			是否为发送
//url:				URL字符串
//req:				HTTP请求的结构体
//返回值:			1、成功 0、失
int _XHTTPRequest::sendRequest(_XBool IsPost,char *url,_XHTTPRequestStruct &req)
{
	int i,rtn;
	char* buffer;

	if(req.headerReceive != NULL) free(req.headerSend);
	if(req.message != NULL) free(req.message);
	req.messageLength = 0;

	if(IsPost)
	{//发送 
		i = strlen(req.headerSend);
		buffer = (char*) malloc(i+1);
		if(buffer != NULL) strcpy(buffer, req.headerSend);
		//释放内存空间
		free(req.headerSend);

		rtn = sendHTTP(url,"Content-Type: application/x-www-form-urlencoded\r\n",
			(unsigned char*)buffer,i,&req);

		free(buffer);
	}else
	{//接收
		rtn = sendHTTP(url,NULL,NULL,0,&req);
	}

	if(rtn != 0) return 1;//将数据输出
	else return 0;
}
char* MtkHttpClient::send(const char* request, const char* serverUrl, int port) {
    // TODO: probably not the best way to detect protocol...
    switch(port)
    {

        case 80:
            return sendHTTP(request, serverUrl, port);
        case 443:
            return sendHTTPS(request, serverUrl, port);
        default:
            return sendHTTP(request, serverUrl, port);
    }
}
Beispiel #3
0
int main()
{
	int i=0;
	Init();
	init_port();
	
	while(1)
	{
		sendHTTP(GET,NULL);
		delay(1000);
		sendHTTP(POST,"");
		delay(1000);	
	}
	return 0;
}
Beispiel #4
0
void Stats::initialExec()
{
	if(trigger())
	{
		QTimer::singleShot(0,this, SLOT(sendHTTP()));
	}
}
Beispiel #5
0
Stats::Stats()
	: QObject()
	, _log(Logger::getInstance("STATS"))
	, _hyperion(Hyperion::getInstance())
{
	// generate hash
	foreach(QNetworkInterface interface, QNetworkInterface::allInterfaces())
	{
		if (!(interface.flags() & QNetworkInterface::IsLoopBack))
		{
			_hyperion->id = QString(QCryptographicHash::hash(interface.hardwareAddress().toLocal8Bit().append(_hyperion->getConfigFileName().toLocal8Bit()),QCryptographicHash::Sha1).toHex());
			_hash = QString(QCryptographicHash::hash(interface.hardwareAddress().toLocal8Bit(),QCryptographicHash::Sha1).toHex());
			break;
		}
    }

	// stop reporting if not found
	if(_hash.isEmpty())
	{
		Warning(_log, "No interface found, abort");
		// fallback id
		_hyperion->id = QString(QCryptographicHash::hash(_hyperion->getConfigFileName().toLocal8Bit(),QCryptographicHash::Sha1).toHex());
		return;
	}

	// prepare content
	QJsonObject config = _hyperion->getConfig();
	SysInfo::HyperionSysInfo data = SysInfo::get();

	QJsonObject system;
	system["kType"    ] = data.kernelType;
	system["arch"       ] = data.architecture;
	system["pType"      ] = data.productType;
	system["pVersion"   ] = data.productVersion;
	system["pName"      ] = data.prettyName;
	system["version"    ] = QString(HYPERION_VERSION);
	system["device"     ] = LedDevice::activeDevice();
	system["id"         ] = _hyperion->id;
	system["hw_id"      ] = _hash;
	system["ledCount"   ] = QString::number(Hyperion::getInstance()->getLedCount());
	system["comp_sm"    ] = config["smoothing"].toObject().take("enable");
	system["comp_bb"    ] = config["blackborderdetector"].toObject().take("enable");
	system["comp_fw"    ] = config["forwarder"].toObject().take("enable");
	system["comp_udpl"  ] = config["udpListener"].toObject().take("enable");
	system["comp_bobl"  ] = config["boblightServer"].toObject().take("enable");
	system["comp_pc"    ] = config["framegrabber"].toObject().take("enable");
	system["comp_uc"    ] = config["grabberV4L2"].toArray().at(0).toObject().take("enable");

	QJsonDocument doc(system);
	_ba = doc.toJson();

	// QNetworkRequest Header
	_req.setRawHeader("Content-Type", "application/json");
   	_req.setRawHeader("Authorization", "Basic SHlwZXJpb25YbDQ5MlZrcXA6ZDQxZDhjZDk4ZjAwYjIw");

	connect(&_mgr, SIGNAL(finished(QNetworkReply*)), this, SLOT(resolveReply(QNetworkReply*)));

	// 7 days interval
	QTimer *timer = new QTimer(this);
	connect(timer, SIGNAL(timeout()), this, SLOT(sendHTTP()));
	timer->start(604800000);

	//delay initial check
	QTimer::singleShot(60000, this, SLOT(initialExec()));
}