#include
#include
#include "curl/curl.h"
#include "curl/types.h"
#include "curl/easy.h"
/*?針對sns?進行配置,可惜現在digu在維護中,可以自己選擇配置?*/
#define SNS_UPDATE_URL " http://api.digu.com/statuses/update.xml" /* sns?社區開放api入口?*/
#define SNS_USERPWD "用戶名:密碼"
#define SNS_USER "用戶email"
#define PROXY "可設置代理"
?
int digusendmsg(char *msg)
{?
?CURL *curl;
?CURLcode res;
?printf("Init to send message.
");
?struct curl_httppost *formpost=NULL;
?struct curl_httppost *lastptr=NULL;
?struct curl_slist *headerlist=NULL;
?static const char buf[] = "Expect:";
?curl_global_init(CURL_GLOBAL_ALL);
??/*Fill in the file upload field */
?curl_formadd(&formpost,
???????????????&lastptr,
???????????????CURLFORM_COPYNAME,"content",
???????????????CURLFORM_COPYCONTENTS, msg,
???????????????CURLFORM_END);
???curl_formadd(&formpost,
???????????????&lastptr,
???????????????CURLFORM_COPYNAME,"source",
???????????????CURLFORM_COPYCONTENTS,"mx",
???????????????CURLFORM_END);
?curl = curl_easy_init();
?printf("Init done!
");
?headerlist = curl_slist_append(headerlist, buf);
?if(curl) {
??????????/* what URL that receives this POST */
?????????curl_easy_setopt(curl, CURLOPT_VERBOSE,?1L);
?????????curl_easy_setopt(curl,CURLOPT_PROXY,PROXY);/* http代理設置,如果沒有可以注釋掉*/
??????????curl_easy_setopt(curl,CURLOPT_URL,SNS_UPDATE_URL);
??????????curl_easy_setopt(curl, CURLOPT_HTTPHEADER,headerlist);
??????????curl_easy_setopt(curl, CURLOPT_HTTPPOST,formpost);
??????????curl_easy_setopt(curl, CURLOPT_HTTPAUTH,CURLAUTH_BASIC);
??????????curl_easy_setopt(curl,CURLOPT_USERPWD,SNS_USERPWD);
??????????curl_easy_setopt(curl, CURLOPT_HEADER, 1);
??????????curl_easy_setopt(curl, CURLOPT_COOKIE,SNS_USER);
??????????res = curl_easy_perform(curl);??????
??????????/* always cleanup */
??????????curl_easy_cleanup(curl);????????
??????????/* then cleanup the formpost chain */
??????????curl_formfree(formpost);
??????????/* free slist */
??????????curl_slist_free_all (headerlist);
??????????if(!res){
???????????????????printf("TranlateOK!
");
???????????????????return0;
??????????}else{
???????????????????printf("Tranlateerror!
");
???????????????????return-1;
??????????}
??}
}
而從不同接口接受到的數據,就可以直接使用snsendmsg函數進行傳輸到SNS社區就可以了。
一個非常簡單的應用J..
評論
查看更多