示例#1
0
void WPUtils::getBlogs(QString u, QString p, QString blog_address)
{
	_xml.clear();
	QXmlStreamWriter sw(&_xml);

	sw.setAutoFormatting(true);
	sw.writeStartDocument();

	sw.writeStartElement("methodCall");
	sw.writeTextElement("methodName", "wp.getUsersBlogs");

	sw.writeStartElement("params");
	sw.writeStartElement("param");
	sw.writeCharacters("username");
	sw.writeTextElement("value", u);
	sw.writeEndElement();
	sw.writeStartElement("param");
	sw.writeCharacters("password");
	sw.writeTextElement("value", p);
	sw.writeEndElement();

	sw.writeEndDocument();

	QNetworkAccessManager *manager = new QNetworkAccessManager();

	manager->setObjectName("getUsersBlogs");

	QObject::connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));

	QUrl url;

	//_xml = xml.toUtf8();

	QString tmp_url = searchEndPoint(blog_address);
	if ( tmp_url.isEmpty() )
	{
		qDebug() << "unable to found endpoint";
		res.insert("ERROR","ERROR");
	} else {

		url.setUrl(tmp_url);
		QNetworkRequest request(url);
		int cmd = 0;
		request.setAttribute(QNetworkRequest::Attribute(QNetworkRequest::User + 1), QVariant((int) cmd)); /* not sure */
		request.setRawHeader("User-Agent", "wp-bb10/0.0.1");
		request.setHeader(QNetworkRequest::ContentTypeHeader, "text/xml");

		manager->post(request,_xml);
	}
}
示例#2
0
void WPUtils::buildWPXML(QString mName, bool standardParams,
		QStringList other_paramsNames, QStringList other_paramsValues,
		QStringList memberNames , QStringList memberValues)

{
	qDebug() << "bwpx : endpoint on = " << _endpoint;
	QByteArray _xml;
	QXmlStreamWriter sw(&_xml);

	sw.setAutoFormatting(true);
	sw.writeStartDocument();

	sw.writeStartElement("methodCall");
	sw.writeTextElement("methodName", mName);

	sw.writeStartElement("params");

	if ( standardParams )
	{
		sw.writeStartElement("param");
		sw.writeCharacters("blog_id");
		sw.writeTextElement("value", _blogid);
		sw.writeEndElement();

		sw.writeStartElement("param");
		sw.writeCharacters("username");
		sw.writeTextElement("value", _username);
		sw.writeEndElement();

		sw.writeStartElement("param");
		sw.writeCharacters("password");
		sw.writeTextElement("value", _password);
		sw.writeEndElement();
	}

	int i;

	for ( i=0; i<other_paramsNames.size(); i++ )
	{
		sw.writeStartElement("param");
		sw.writeCharacters(other_paramsNames.at(i).toLocal8Bit().constData());
		sw.writeTextElement("value", other_paramsValues.at(i).toLocal8Bit().constData());
		sw.writeEndElement();
	}
	sw.writeEndElement();
	if ( memberNames.size() > 0 )
	{
		sw.writeStartElement("struct");

		for ( i = 0; i < memberNames.size(); i++ )
		{
			sw.writeStartElement("member");
			sw.writeTextElement("name", memberNames.at(i).toLocal8Bit().constData());
			sw.writeTextElement("value", memberValues.at(i).toLocal8Bit().constData());
			sw.writeEndElement();

		}

		sw.writeEndElement();
	}


	sw.writeEndDocument();

	QNetworkAccessManager *manager = new QNetworkAccessManager();

	mName.replace("deletePost","delPost", Qt::CaseSensitive);
	mName.replace("deleteComment", "delComment", Qt::CaseSensitive);
	if ( memberValues.contains("page", Qt::CaseSensitive) )
		mName.replace("Post", "Page", Qt::CaseInsensitive);

	manager->setObjectName(mName.replace("wp.",""));

	QObject::connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));

	QUrl url;

	url.setUrl(_endpoint);
	QNetworkRequest request(url);
	int cmd = 0;
	request.setAttribute(QNetworkRequest::Attribute(QNetworkRequest::User + 1), QVariant((int) cmd)); /* not sure */
	request.setRawHeader("User-Agent", "wp-bb10/0.0.1");
	request.setHeader(QNetworkRequest::ContentTypeHeader, "text/xml");

	manager->post(request,_xml);
}