[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