[Kst] extragear/graphics/kst/src/datasources/naddirect
Eli Fidler
eli at staikos.net
Wed Mar 29 00:29:38 CEST 2006
SVN commit 523731 by fidler:
use libcurl for getFields
M +27 -10 nadconnection.cpp
--- trunk/extragear/graphics/kst/src/datasources/naddirect/nadconnection.cpp #523730:523731
@@ -271,19 +271,36 @@
// kdDebug() << "xml Request:" << postData << endl;
- KIO::TransferJob* job = KIO::http_post(_url, data, false);
-// job->addMetaData("content-type", "Content-Type: text/xml" );
+ CURL *curlHandle = curl_easy_init();
+ QString urlQString = _url.url();
+ const char *urlStr = urlQString.latin1();
+ curl_easy_setopt(curlHandle, CURLOPT_URL, urlStr);
- QMap<QString, QString> metaData;
- metaData.insert( "content-type", "Content-Type: text/xml" );
-// metaData.insert( "PropagateHttpHeader", "true" );
+ struct curl_slist *headers=NULL;
+ headers = curl_slist_append(headers, "Content-Type: text/xml");
+
QByteArray response;
- KURL url = _url;
- if (!KIO::NetAccess::synchronousRun(job, 0, &response, &url, &metaData)) {
- kdDebug() << "NAD: error with HTTP post" << endl;
- return false;
- }
+ QBuffer b(response);
+ b.open(IO_WriteOnly);
+ QDataStream respTempStream(&b);
+ curl_easy_setopt(curlHandle, CURLOPT_POSTFIELDS, data.data());
+
+ /* set the size of the postfields data */
+ curl_easy_setopt(curlHandle, CURLOPT_POSTFIELDSIZE, postData.length());
+
+ /* pass our list of custom made headers */
+ curl_easy_setopt(curlHandle, CURLOPT_HTTPHEADER, headers);
+
+ curl_easy_setopt(curlHandle, CURLOPT_WRITEFUNCTION, curlWriter);
+ curl_easy_setopt(curlHandle, CURLOPT_WRITEDATA, &respTempStream);
+
+ curl_easy_perform(curlHandle); /* post away! */
+
+ curl_slist_free_all(headers); /* free the header list */
+
+ kdDebug() << "done HTTP POST for getFields" << endl;
+
QXmlInputSource source;
QXmlSimpleReader xmlReader;
FieldsResponseHandler *handler = new FieldsResponseHandler();
More information about the Kst
mailing list