1
我正在嘗試使用libcurl將XML數據發佈到排序的Web服務。我使用tinyxml來創建一個xml文檔,我希望能夠使用curl進行POST,並使用tinyxml解析XML響應。我搜索了stackoverflow,但沒有任何現有的問題符合我的方案。libcurl POST-CURLOPT_READFUNCTION&CURLOPT_WRITEFUNCTION發佈XML
我無法弄清楚如何從tinyxml打印機/ std :: string到用於POSTing的libcurl,然後將響應接收到內存中以便稍後由tinyxml庫打開。
我幾乎得到了下面的代碼工作,但我經常收到未處理的異常,這可能是由於一些與指針。
typedef struct{
void *data;
int body_size;
int bytes_remaining;
int bytes_written;
} postdata;
size_t readfunc(void *ptr, size_t size, size_t nmemb, void *stream) {
if(stream) {
postdata *ud = (postdata*)stream;
if(ud->bytes_remaining) {
if(ud->body_size > size*nmemb) {
memcpy(ptr, ud->data+ud->bytes_written, size*nmemb);
ud->bytes_written+=size+nmemb;
ud->bytes_remaining = ud->body_size-size*nmemb;
return size*nmemb;
} else {
memcpy(ptr, ud->data+ud->bytes_written, ud->bytes_remaining);
ud->bytes_remaining=0;
return 0;
}
}
感謝您的協助。