завиток с табличным слиянием

когда я пытаюсь получить данные из своей таблицы слияния, я получил из своей строки запроса, например

<! DOCTYPE HTML Public "-//w3c//dtd html final// EN>
<HTML>
<Head>
<style>
a:link {font:....}
a:visited {font:......}
</style>
<meta HTTP-EQUIV="content-type" content="text-html; charset= window....">

не такой, как тот, который я получил от java или C# API, мой код C такой

typedef struct pageInfo_t {
char *data;
int  len;
} pageInfo_t;

static size_t HTTPData(void *buffer, size_t size, size_t nmemb, void *userData) {
 int len = size * nmemb;
 pageInfo_t *page = (pageInfo_t *)userData;
 if (buffer && page->data && (page->len + len < (16 * 1024)) ) {
   memcpy(&page->data[page->len], buffer, len);
   page->len += len;
 }
 return len;
}

const char urlDataT[]="http://www.google.com/fusiontables/api/query?sql=select * from 3333333";

jstring Java_com_AnalyticToolC_AnalyticToolActivity_JNIGetToken( JNIEnv* env,jobject entryObject)
{
pageInfo_t page;
CURL *curl;
CURLcode res;
char *buffer;


 page.data = (char *)malloc(16 * 1024);
 page.len = 0;
if (page.data)
  memset(page.data, 32, 16 * 1024);

buffer = (char *)malloc(1024);

curl = curl_easy_init();
if(curl) {

 curl_easy_setopt(curl, CURLOPT_URL, urlDataT);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, HTTPData);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &page);

res = curl_easy_perform(curl);
    /* always cleanup */
curl_easy_cleanup(curl);
if(res == 0) {
  if (buffer) {
    page.data[page.len < 256 ? page.len : 256] = '\0';
sprintf(buffer, "pagedata(%d): %s. done.\n", page.len, page.data);
    return (*env)->NewStringUTF(env, buffer);
  }
}
sprintf(buffer, "Result %d", res);
return (*env)->NewStringUTF(env, buffer);
} else {
   return (*env)->NewStringUTF(env, "Unable to init cURL");
 }
}  

что мне делать, чтобы полученная строка содержала данные таблицы


person Serngawy    schedule 29.03.2012    source источник


Ответы (1)


Вам нужно закодировать URL вашего запроса. Например.

 $ curl "http://www.google.com/fusiontables/api/query?sql=select+*+from+3333333"
person Eric Bridger    schedule 29.03.2012
comment
Я решаю это, просто добавляя эти две опции для завивки перед выполнением: curl_easy_setopt(curl, CURLOPT_HTTPGET, 1L); структура curl_slist *headers = NULL; заголовки = curl_slist_append (заголовки, Content-Type: application/atom+xml); curl_easy_setopt (завиток, CURLOPT_HTTPHEADER, заголовки); - person Serngawy; 29.03.2012
comment
Извините, не знал, что у java есть curl lib. - person Eric Bridger; 30.03.2012