apiclient.cpp
上传用户:coffee44
上传日期:2018-10-23
资源大小:12304k
文件大小:67k
- //////////////////////////////////////////////////////////////////////////
- //
- // Copyright (c) 1988-2009, Huawei Software company All Right Reserved.
- //
- // Huawei Software Internet Service Developtment Division
- //
- // Project : AppMarket WebService Client API
- //
- // History :
- //
- // Author :liuli 35397 <marker dot liu at gmail dot com>
- //
- // Date :2009-0-22
- //
- //
- //////////////////////////////////////////////////////////////////////////
- #include "StdAfx.h"
- #pragma warning(disable: 4786)
- #include <string>
- #include <sstream>
- #include <list>
- #include "libcurl/include/curl/curl.h"
- #include "md5.h"
- #include "apiclient.h"
- #include "winjson/json.h"
- CApiClient::CApiClient()
- :m_pcurl(NULL),
- call_id(0)
- {
- m_szAppKey[0] =' ';
- m_szAppSecretKey[0] =' ';
- m_szUserName[0] =' ';
- m_szCookie[0] =' ';
- m_szWebServiceURL[0]=' ';
- m_ulUID = 0;
- m_bLoginState = SESSION_STATE_UNLOGIN;
- m_pcurl = curl_easy_init();
- }
- // 拷贝构造函数;
- CApiClient::CApiClient(const CApiClient & rhs)
- :m_pcurl(NULL),
- call_id(0)
- {
- strncpy(m_szAppKey,rhs.m_szAppKey,sizeof(m_szAppKey)-1);
- strncpy(m_szAppSecretKey,rhs.m_szAppSecretKey,sizeof(m_szAppSecretKey)-1);
- strncpy(m_szUserName,rhs.m_szUserName,sizeof(m_szUserName)-1);
-
- m_szCookie[0]=' ';
- m_szWebServiceURL[0]=' ';
- m_ulUID = rhs.m_ulUID;
- m_bLoginState = rhs.m_bLoginState;
-
- if (NULL == m_pcurl)
- {
- m_pcurl = curl_easy_init();
- }
- }
- // 带参数构造函数
- CApiClient::CApiClient(char * pszAPIKEY,char * pszAPISKEY,char * pszServerURL)
- :m_pcurl(NULL),
- call_id(0),
- m_errCode(0)
- {
- memcpy (m_szSessionKey,"asdf",5);
- memcpy (m_szFormat,"json",5);
- if (NULL != pszAPIKEY)
- {
- strncpy(m_szAppKey,&(*pszAPIKEY),sizeof(m_szAppKey)-1);
- }
-
- if (NULL !=pszAPISKEY)
- {
- strncpy(m_szAppSecretKey,&(*pszAPISKEY),sizeof(m_szAppSecretKey)-1);
- }
-
- if (NULL != pszServerURL)
- {
- m_szWebServiceURL[0]=' ';
- strncpy(m_szWebServiceURL,&(*pszServerURL),sizeof(m_szWebServiceURL)-1);
- }
-
- if (NULL == m_pcurl)
- {
- m_pcurl = curl_easy_init();
- }
- }
- // 析构函数
- CApiClient::~CApiClient()
- {
- // ToDo : do something for game over ....?
- if (m_pcurl)
- {
- // void curl_easy_cleanup(CURL * handle );
- curl_easy_cleanup(m_pcurl);
- m_pcurl = NULL;
- }
- }
- //发送数据包,并接受返回包
- string CApiClient::SendAndRecvPackage(list<string> myParams)
- {
- string result = "";
- curl_easy_reset( this->m_pcurl );
- #ifdef fb_debug
- curl_easy_setopt( m_pcurl, CURLOPT_VERBOSE, true );
- #endif
- curl_easy_setopt( m_pcurl, CURLOPT_URL, this->m_szWebServiceURL);
-
- //////////////////////////////////////////////////////////////////////////
- string query = CApiClient::get_param_string( myParams, true );
- printf("%snt",query.c_str());
- myParams.clear();
- //////////////////////////////////////////////////////////////////////////
- //转换为UFT_8
- int nRelengh = 0;
- nRelengh = GBKToUTF8((unsigned char *)query.c_str(),NULL,NULL);
- char *lpUTF8Str = new char[nRelengh + 1];
- GBKToUTF8((unsigned char *)query.c_str(),(unsigned char *)lpUTF8Str,nRelengh);
- string strUtf8(lpUTF8Str);
- delete[] lpUTF8Str;
-
- curl_easy_setopt( m_pcurl, CURLOPT_POST, true );
- curl_easy_setopt( m_pcurl, CURLOPT_POSTFIELDS, strUtf8.c_str( ) );
-
- curl_easy_setopt( m_pcurl, CURLOPT_WRITEFUNCTION, CApiClient::write_callback );
- curl_easy_setopt( m_pcurl, CURLOPT_WRITEDATA, &result );
-
- this->res = curl_easy_perform(m_pcurl);
- call_id++;
-
- //////////////////////////////////////////////////////////////////////////
- // 判断返回数据结果
- if ( (0 != this->res) || (result.empty()))
- {
- return "";
- }
- //将返回结果转换为GBK
- result = UTF8ToGBK((char*)result.c_str());
- return result;
- }
- //分析解析 JSON 数据
- int CApiClient::AnalyzeRespMsg(string& result, const char* strKeyName, list<string>& lstStrValue)
- {
- if (result.empty())
- {
- return -1;
- }
- lstStrValue.clear();
- string strValue = "Test";
- struct json_object *jobj = NULL;
- JBOOLEAN jRetVal = FALSE;
- char* ptest= (char*)(result.c_str());
-
- //////////////////////////////////////////////////////////////////////////
- // SKIP :: This UTF-8 Bigendian Of Marker .....
- // 0xEF BB BF
- //
- if ( ((unsigned char)0xEF == (unsigned char)ptest[0])
- &&((unsigned char)0xBB == (unsigned char)ptest[1])
- &&((unsigned char)0xBF == (unsigned char)ptest[2]))
- {
- ptest = ptest +3;
- }
-
- try
- {
- //////////////////////////////////////////////////////////////////////////
- // 将结果赋值给JSON结构,对返回结果进行JSON解析
- //
- jobj = json_tokener_parse(ptest);
-
- struct json_object * results_jsonobj =NULL;
- struct json_object * item_jsonobj =NULL;
- struct json_object * retVal_jsonobj =NULL;
- struct json_object * code_jsonobj =NULL;
-
- //////////////////////////////////////////////////////////////////////////
- //获取 result 关键字
- if (NULL != jobj)
- {
- //20090728 改成数组格式
- if(ptest[0] == '[')
- {
- jobj = json_object_array_get_idx(jobj, 0);
- }
- if (NULL != jobj)
- {
- results_jsonobj = json_object_object_get(jobj,"results");
- }
- if (NULL != jobj)
- {
- code_jsonobj = json_object_object_get(jobj, "code");
- if (code_jsonobj)
- {
- MessageBox(NULL,json_object_to_json_string(jobj),"Err",0);
- m_errCode = json_object_get_int(code_jsonobj);
- }
- json_object_put(code_jsonobj);
- }
- //json_object_put(jobj);
- }
-
- //////////////////////////////////////////////////////////////////////////
- //获取 item 关键字
- if (NULL != results_jsonobj)
- {
- item_jsonobj = json_object_object_get(results_jsonobj,"item");
-
- if( NULL != item_jsonobj)
- {
- retVal_jsonobj = json_object_object_get(results_jsonobj,"itemCount");
- if (retVal_jsonobj)
- {
- m_itemCount = json_object_get_int(retVal_jsonobj);
- }
- json_object_put(retVal_jsonobj);
-
- retVal_jsonobj = json_object_object_get(results_jsonobj,"startIndex");
- if (retVal_jsonobj)
- {
- m_startIndex = json_object_get_int(retVal_jsonobj);
- }
- json_object_put(retVal_jsonobj);
-
- retVal_jsonobj = json_object_object_get(results_jsonobj,"currentCount");
- if (retVal_jsonobj)
- {
- m_currentCount = json_object_get_int(retVal_jsonobj);
- }
- json_object_put(retVal_jsonobj);
-
- for(int i = 0; i < json_object_array_length(item_jsonobj); i++)
- {
- struct json_object *obj = json_object_array_get_idx(item_jsonobj, i);
- if(NULL != obj)
- {
- retVal_jsonobj = json_object_object_get(obj, (char *)(LPCSTR)strKeyName);
- if (retVal_jsonobj)
- {
- string strReValue = json_object_to_json_string(retVal_jsonobj);
- if (strReValue.at(0) == '"' && strReValue.at(strReValue.size() - 1) == '"' && strReValue.size()>2)
- {
- string strSub = strReValue.substr(1,strReValue.size()-2);
- _sleep(13);
- lstStrValue.push_back(strSub);
- }
- else
- lstStrValue.push_back(strReValue);
- TRACE("rn");
- TRACE(strReValue.data());
- }
- json_object_put(retVal_jsonobj);
- }
- json_object_put(obj);
- }
- TRACE("rn----------------------Src------------------------------rn");
- list<string>::iterator lstIT;
- for ( lstIT = lstStrValue.begin(); lstIT != lstStrValue.end(); lstIT++)
- {
- string strTemp;
- strTemp = *lstIT;
- TRACE("rn");
- TRACE(strTemp.data());
- }
- TRACE("rn----------------------Class-------------------------rn");
- }
- else //获取 “各字段” 关键字
- {
- /*
- retVal_jsonobj = json_object_object_get(results_jsonobj,"retVal");
- if (retVal_jsonobj)
- {
- jRetVal = json_object_get_boolean(retVal_jsonobj);
- m_bLoginState = jRetVal;
- }
- json_object_put(retVal_jsonobj);
-
- retVal_jsonobj = json_object_object_get(results_jsonobj,"uid");
- if (retVal_jsonobj)
- {
- m_ulUID = json_object_get_int(retVal_jsonobj);
- }
- json_object_put(retVal_jsonobj);
- */
- retVal_jsonobj = json_object_object_get(results_jsonobj,(char *)(LPCSTR)strKeyName);
- if (retVal_jsonobj)
- {
- strValue = json_object_to_json_string(retVal_jsonobj);
- if (strValue.at(0) == '"' && strValue.at(strValue.size() - 1) == '"'&& strValue.size()>2 )
- {
- strValue = strValue.substr(1,strValue.size()-2);
- }
- lstStrValue.push_back(strValue);
- }
- json_object_put(retVal_jsonobj);
- }
- }
-
- has_session = jRetVal;
-
- //////////////////////////////////////////////////////////////////////////
- /*//清理 JSON 数据 报错,不处理反而不出错,只是内存有泄露??????????????
- if (retVal_jsonobj)
- json_object_put(retVal_jsonobj);
- if (item_jsonobj)
- json_object_put(item_jsonobj);
- if (results_jsonobj)
- json_object_put(results_jsonobj);
- if (jobj)
- json_object_put(jobj);*/
- }
- catch (...)
- {
- }
-
- list<string>::iterator lstIT;
- for ( lstIT = lstStrValue.begin(); lstIT != lstStrValue.end(); lstIT++)
- {
- string strTemp;
- strTemp = *lstIT;
- TRACE("rn");
- TRACE(strTemp.data());
- }
- TRACE("rn----------------------View-------------------------rn");
- return ( (0 == (this->res)) && (TRUE == jRetVal));
- }
- //登陆
- string CApiClient::LoginUser(const char * pszUserName, const char * pszPassword, const char * pszSessionKey, const char * pszFormat)
- {
- //////////////////////////////////////////////////////////////////////////
- if (NULL == m_pcurl)
- {
- m_pcurl = curl_easy_init();
- }
-
- list<string> myParams;
- string strVar;
- string strResult = "";
- //////////////////////////////////////////////////////////////////////////
- // methodname
- strVar = string("method=") + string("account.login");
- myParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // User Name
- if (NULL != pszUserName)
- {
- strVar = string("uName=") + string(pszUserName);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // Password
- if (NULL != pszPassword)
- {
- strVar = string("uPass=") + string(pszPassword);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- //构造其他参数
- StructureParams(myParams);
- //发送并接受数据
- strResult = SendAndRecvPackage(myParams);
- return strResult;
- }
- /// 获取推荐信息:用户ID,索引开始号,最多返回结果数,排序字段名,升降序或其他,推荐范围
- string CApiClient::GetRecomMsg(const char *strUserId, const char *strIndex, const char *strMaxNum,
- const char *strOrderByName, const char* strOrderDirec, const char *strArea)
- {
- if (NULL == m_pcurl)
- {
- m_pcurl = curl_easy_init();
- }
-
- list<string> myParams;
- string strVar;
- string strResult;
- //////////////////////////////////////////////////////////////////////////
- // methodname
- strVar = string("method=") + string("recom.get");
- myParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // User ID
- if (NULL != strUserId)
- {
- strVar = string("uid=") + string(strUserId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // strArea
- if (NULL != strArea)
- {
- strVar = string("area=") + string(strArea);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // startIndex
- if (NULL != strIndex)
- {
- strVar = string("startIndex=") + string(strIndex);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // maxNum
- if (NULL != strMaxNum)
- {
- strVar = string("maxNum=") + string(strMaxNum);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- //orderByName
- if (NULL != strOrderByName)
- {
- strVar = string("orderByName=") + string(strOrderByName);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- //orderDirec
- if (NULL != strOrderDirec)
- {
- strVar = string("orderDirec=") + string(strOrderDirec);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- //构造其他参数
- StructureParams(myParams);
-
- //发送并接受数据
- strResult = SendAndRecvPackage(myParams);
-
- return strResult;
- }
- /// 猜你喜欢:用户ID,最多返回结果数
- string CApiClient::GuessYouLike(const char *strUserId,const char *strMaxNum)
- {
- if (NULL == m_pcurl)
- {
- m_pcurl = curl_easy_init();
- }
-
- list<string> myParams;
- string strVar;
- string strResult;
- //////////////////////////////////////////////////////////////////////////
- // methodname
- strVar = string("method=") + string("recom.getParser");
- myParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // User ID
- if (NULL != strUserId)
- {
- strVar = string("uid=") + string(strUserId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // maxNum
- if (NULL != strMaxNum)
- {
- strVar = string("maxNum=") + string(strMaxNum);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- //构造其他参数
- StructureParams(myParams);
-
- //发送并接受数据
- strResult = SendAndRecvPackage(myParams);
-
- return strResult;
- }
- /// 获取应用分类列表:用户ID,索引开始号,最多返回结果数
- string CApiClient::GetAppGroup(const char *strUserId, const char *strIndex, const char *strMaxNum)
- {
- if (NULL == m_pcurl)
- {
- m_pcurl = curl_easy_init();
- }
-
- list<string> myParams;
- string strVar;
- string strResult;
- //////////////////////////////////////////////////////////////////////////
- // methodname
- strVar = string("method=") + string("appgroup.get");
- myParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // User ID
- if (NULL != strUserId)
- {
- strVar = string("uid=") + string(strUserId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // startIndex
- if (NULL != strIndex)
- {
- strVar = string("startIndex=") + string(strIndex);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // maxNum
- if (NULL != strMaxNum)
- {
- strVar = string("maxNum=") + string(strMaxNum);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- //构造其他参数
- StructureParams(myParams);
-
- //发送并接受数据
- strResult = SendAndRecvPackage(myParams);
-
- return strResult;
- }
- /// 获取收藏应用:用户ID,索引开始号,最多返回结果数
- string CApiClient::GetCollectionUse(const char *strUserId, const char *strIndex, const char *strMaxNum)
- {
- if (NULL == m_pcurl)
- {
- m_pcurl = curl_easy_init();
- }
-
- list<string> myParams;
- string strVar;
- string strResult;
- //////////////////////////////////////////////////////////////////////////
- // methodname
- strVar = string("method=") + string("shop.getShopApp");
- myParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // User ID
- if (NULL != strUserId)
- {
- strVar = string("uid=") + string(strUserId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // startIndex
- if (NULL != strIndex)
- {
- strVar = string("startIndex=") + string(strIndex);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // maxNum
- if (NULL != strMaxNum)
- {
- strVar = string("maxNum=") + string(strMaxNum);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- //构造其他参数
- StructureParams(myParams);
-
- //发送并接受数据
- strResult = SendAndRecvPackage(myParams);
-
- return strResult;
- }
- /// 获取应用:用户ID,索引开始号,最多返回结果数,用户行为
- string CApiClient::GetMyApp(const char *strUserId, const char *strIndex, const char *strMaxNum, const char *strUserAction)
- {
- if (NULL == m_pcurl)
- {
- m_pcurl = curl_easy_init();
- }
-
- list<string> myParams;
- string strVar;
- string strResult;
- //////////////////////////////////////////////////////////////////////////
- // methodname
- strVar = string("method=") + string("myapp.get");
- myParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // User ID
- if (NULL != strUserId)
- {
- strVar = string("uid=") + string(strUserId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // startIndex
- if (NULL != strIndex)
- {
- strVar = string("startIndex=") + string(strIndex);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // maxNum
- if (NULL != strMaxNum)
- {
- strVar = string("maxNum=") + string(strMaxNum);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // userAction
- if (NULL != strUserAction)
- {
- strVar = string("userAction=") + string(strUserAction);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- //构造其他参数
- StructureParams(myParams);
-
- //发送并接受数据
- strResult = SendAndRecvPackage(myParams);
-
- return strResult;
- }
- /// 应用搜索:
- string CApiClient::UseSearch(const char *strUserId, const char *strIndex, const char *strMaxNum, const char *strKeyword,
- const char *strSortId, const char *strPriceSmall, const char *strPriceBig, const char *strBrandName,
- const char *strModleName, const char *strOrderByName, const char *strOrderDirec)
- {
- string strValue;
- return strValue;
- }
- /// 店铺搜索:
- string CApiClient::StoreSearch(const char *strUserId, const char *strIndex, const char *strMaxNum, const char *strKeyword,
- const char *strSortId, const char *strOrderByName, const char *strOrderDirec, const char *strShopRate)
- {
- string strValue;
- return strValue;
- }
- /// 增加应用或店铺收藏:
- string CApiClient::AddCollection(const char *strUserId, const char *strAppId,const char * strArea)
- {
- if (NULL == m_pcurl)
- {
- m_pcurl = curl_easy_init();
- }
-
- list<string> myParams;
- string strVar;
- string strResult;
- //////////////////////////////////////////////////////////////////////////
- // methodname
- strVar = string("method=") + string("collection.addCol");
- myParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // User ID
- if (NULL != strUserId)
- {
- strVar = string("uid=") + string(strUserId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- //Id
- if (NULL != strAppId)
- {
- strVar = string("id=") + string(strAppId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // area
- if (NULL != strArea)
- {
- strVar = string("area=") + string(strArea);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- //构造其他参数
- StructureParams(myParams);
-
- //发送并接受数据
- strResult = SendAndRecvPackage(myParams);
- return strResult;
- }
- /// 删除应用或店铺收藏:
- string CApiClient::DelCollection(const char *strUserId, const char *strAppId, const char * strArea)
- {
- if (NULL == m_pcurl)
- {
- m_pcurl = curl_easy_init();
- }
-
- list<string> myParams;
- string strVar;
- string strResult;
- //////////////////////////////////////////////////////////////////////////
- // methodname
- strVar = string("method=") + string("collection.delCol");
- myParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // User ID
- if (NULL != strUserId)
- {
- strVar = string("uid=") + string(strUserId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // id
- if (NULL != strAppId)
- {
- strVar = string("id=") + string(strAppId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // area
- if (NULL != strArea)
- {
- strVar = string("area=") + string(strArea);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- //构造其他参数
- StructureParams(myParams);
-
- //发送并接受数据
- strResult = SendAndRecvPackage(myParams);
-
- return strResult;
- }
- /// 店铺列表:=> 收件箱信息列表:
- string CApiClient::CollectionList(const char *strUserId, const char *strIndex, const char *strMaxNum)
- {
- if (NULL == m_pcurl)
- {
- m_pcurl = curl_easy_init();
- }
-
- list<string> myParams;
- string strVar;
- string strResult;
- //////////////////////////////////////////////////////////////////////////
- // methodname
- strVar = string("method=") + string("within.getInbox");
- myParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // User ID
- if (NULL != strUserId)
- {
- strVar = string("uid=") + string(strUserId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // startIndex
- if (NULL != strIndex)
- {
- strVar = string("startIndex=") + string(strIndex);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // maxNum
- if (NULL != strMaxNum)
- {
- strVar = string("maxNum=") + string(strMaxNum);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- //构造其他参数
- StructureParams(myParams);
-
- //发送并接受数据
- strResult = SendAndRecvPackage(myParams);
- return strResult;
- }
- /// 发送消息:
- string CApiClient::SendMsg(const char *strUserId, const char *strFriendID, const char *strSendValue)
- {
- if (NULL == m_pcurl)
- {
- m_pcurl = curl_easy_init();
- }
-
- list<string> myParams;
- string strVar;
- string strResult;
- //////////////////////////////////////////////////////////////////////////
- // methodname
- strVar = string("method=") + string("within.sendInfo");
- myParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // User ID
- if (NULL != strUserId)
- {
- strVar = string("uid=") + string(strUserId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // friendId
- if (NULL != strFriendID)
- {
- strVar = string("friendId=") + string(strFriendID);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // sendValue
- if (NULL != strSendValue)
- {
- strVar = string("sendValue=") + string(strSendValue);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- //构造其他参数
- StructureParams(myParams);
- //发送并接受数据
- strResult = SendAndRecvPackage(myParams);
- return strResult;
- }
- /// 回复消息:
- string CApiClient::ResendMsg(const char *strUserId, const char *strFriendID, const char *strSendValue)
- {
- if (NULL == m_pcurl)
- {
- m_pcurl = curl_easy_init();
- }
-
- list<string> myParams;
- string strVar;
- string strResult;
- //////////////////////////////////////////////////////////////////////////
- // methodname
- strVar = string("method=") + string("within.restoreInfo");
- myParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // User ID
- if (NULL != strUserId)
- {
- strVar = string("uid=") + string(strUserId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // friendId
- if (NULL != strFriendID)
- {
- strVar = string("friendId=") + string(strFriendID);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // sendValue
- if (NULL != strSendValue)
- {
- strVar = string("sendValue=") + string(strSendValue);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- //构造其他参数
- StructureParams(myParams);
- //发送并接受数据
- strResult = SendAndRecvPackage(myParams);
- return strResult;
- }
- /// 获取所有好友列表:
- ///uid=250DEAD&startIndex=1&maxNum=10&method=friend.getall×tamp=32432&
- ///sessionkey=sdfsdf&appkey=kasdfas&v=1.0&format=jason&sig=ADF578909
- string CApiClient::GetAllFrd(const char *strUserId, const char *strIndex, const char *strMaxNum)
- {
- if (NULL == m_pcurl)
- {
- m_pcurl = curl_easy_init();
- }
-
- list<string> myParams;
- string strVar;
- string strResult;
- //////////////////////////////////////////////////////////////////////////
- // methodname
- strVar = string("method=") + string("friend.getAll");
- myParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // User ID
- if (NULL != strUserId)
- {
- strVar = string("uid=") + string(strUserId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // startIndex
- if (NULL != strIndex)
- {
- strVar = string("startIndex=") + string(strIndex);
- myParams.push_back(strVar);
- }
- //////////////////////////////////////////////////////////////////////////
- // maxNum
- if (NULL != strMaxNum)
- {
- strVar = string("maxNum=") + string(strMaxNum);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- //构造其他参数
- StructureParams(myParams);
-
- //发送并接受数据
- strResult = SendAndRecvPackage(myParams);
-
- return strResult;
- }
- /// 增加好友:
- string CApiClient::AddFrd(const char *strUserId, const char *strFriendID)
- {
- string strResult;
- return strResult;
- }
- /// 删除好友:
- string CApiClient::DelFrd(const char *strUserId, const char *strFriendID)
- {
- string strResult;
- return strResult;
- }
- /// 好友空间:
- string CApiClient::GetFrdSpace(const char *strUserId, const char *strFriendID)
- {
- if (NULL == m_pcurl)
- {
- m_pcurl = curl_easy_init();
- }
-
- list<string> myParams;
- string strVar;
- string strResult;
- //////////////////////////////////////////////////////////////////////////
- // methodname
- strVar = string("method=") + string("friend.friendHome");
- myParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // User ID
- if (NULL != strUserId)
- {
- strVar = string("uid=") + string(strUserId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // startIndex
- if (NULL != strFriendID)
- {
- strVar = string("friendId=") + string(strFriendID);
- myParams.push_back(strVar);
- }
- //////////////////////////////////////////////////////////////////////////
- //构造其他参数
- StructureParams(myParams);
-
- //发送并接受数据
- strResult = SendAndRecvPackage(myParams);
-
- return strResult;
- }
- /// 获取好友动态信息:
- string CApiClient::GetFrdNewsFeed(const char *strUserId, const char *strIndex, const char *strMaxNum)
- {
- if (NULL == m_pcurl)
- {
- m_pcurl = curl_easy_init();
- }
-
- list<string> myParams;
- string strVar;
- string strResult;
- //////////////////////////////////////////////////////////////////////////
- // methodname
- strVar = string("method=") + string("friend.getNewsFeed");
- myParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // User ID
- if (NULL != strUserId)
- {
- strVar = string("uid=") + string(strUserId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // startIndex
- if (NULL != strIndex)
- {
- strVar = string("startIndex=") + string(strIndex);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // startIndex
- if (NULL != strMaxNum)
- {
- strVar = string("maxNum=") + string(strMaxNum);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- //构造其他参数
- StructureParams(myParams);
-
- //发送并接受数据
- strResult = SendAndRecvPackage(myParams);
- return strResult;
- }
- /// 获取分组:
- string CApiClient::GetTeam(const char *strUserId, const char *strIndex, const char *strMaxNum)
- {
- if (NULL == m_pcurl)
- {
- m_pcurl = curl_easy_init();
- }
-
- list<string> myParams;
- string strVar;
- string strResult;
- //////////////////////////////////////////////////////////////////////////
- // methodname
- strVar = string("method=") + string("friend.getGrouping");
- myParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // User ID
- if (NULL != strUserId)
- {
- strVar = string("uid=") + string(strUserId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // startIndex
- if (NULL != strIndex)
- {
- strVar = string("startIndex=") + string(strIndex);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // maxNum
- if (NULL != strMaxNum)
- {
- strVar = string("maxNum=") + string(strMaxNum);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- //构造其他参数
- StructureParams(myParams);
- //发送并接受数据
- strResult = SendAndRecvPackage(myParams);
-
- return strResult;
- }
- /// 增加分组:
- string CApiClient::AddTeam()
- {
- string strResult;
- return strResult;
- }
- /// 移动到组:
- string CApiClient::MovetoTeam()
- {
- string strResult;
- return strResult;
- }
- /// 重命名组:
- string CApiClient::RenameTeam()
- {
- string strResult;
- return strResult;
- }
- /// 获取店铺信息:
- string CApiClient::GetStoreMsg(const char *strUserId, const char *strShopID)
- {
- if (NULL == m_pcurl)
- {
- m_pcurl = curl_easy_init();
- }
-
- list<string> myParams;
- string strVar;
- string strResult;
- //////////////////////////////////////////////////////////////////////////
- // methodname
- strVar = string("method=") + string("shop.getShopInfo");
- myParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // User ID
- if (NULL != strUserId)
- {
- strVar = string("uid=") + string(strUserId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // ShopID
- if (NULL != strShopID)
- {
- strVar = string("shopId=") + string(strShopID);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- //构造其他参数
- StructureParams(myParams);
-
- //发送并接受数据
- strResult = SendAndRecvPackage(myParams);
- return strResult;
- }
- /// 订阅店铺:
- string CApiClient::SubscribeStore(const char *strUserId, const char *strShopID)
- {
- if (NULL == m_pcurl)
- {
- m_pcurl = curl_easy_init();
- }
-
- list<string> myParams;
- string strVar;
- string strResult;
- //////////////////////////////////////////////////////////////////////////
- // methodname
- strVar = string("method=") + string("shop.subscribeShop");
- myParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // User ID
- if (NULL != strUserId)
- {
- strVar = string("uid=") + string(strUserId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // ShopID
- if (NULL != strShopID)
- {
- strVar = string("shopId=") + string(strShopID);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- //构造其他参数
- StructureParams(myParams);
- //发送并接受数据
- strResult = SendAndRecvPackage(myParams);
-
- return strResult;
- }
- /// 获取掌柜推荐:
- string CApiClient::GetShopKeeperRecom(const char *strUserId, const char *strShopKeeperId,const char *strIndex, const char *strMaxNum)
- {
- if (NULL == m_pcurl)
- {
- m_pcurl = curl_easy_init();
- }
-
- list<string> myParams;
- string strVar;
- string strResult;
- //////////////////////////////////////////////////////////////////////////
- // methodname
- strVar = string("method=") + string("shop.getShopkeeperRec");
- myParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // User ID
- if (NULL != strUserId)
- {
- strVar = string("uid=") + string(strUserId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // ShopKeeperId
- if (NULL != strShopKeeperId)
- {
- strVar = string("shopkeeperId=") + string(strShopKeeperId);
- myParams.push_back(strVar);
- }
- //////////////////////////////////////////////////////////////////////////
- // startIndex
- if (NULL != strIndex)
- {
- strVar = string("startIndex=") + string(strIndex);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // startIndex
- if (NULL != strMaxNum)
- {
- strVar = string("maxNum=") + string(strMaxNum);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- //构造其他参数
- StructureParams(myParams);
-
- //发送并接受数据
- strResult = SendAndRecvPackage(myParams);
-
- return strResult;
- }
- /// 获取店铺应用:
- string CApiClient::GetStoreUse(const char *strUserId, const char *strShopId,const char *strIndex, const char *strMaxNum, const char *strOrderByName, const char *strOrderDirec)
- {
- if (NULL == m_pcurl)
- {
- m_pcurl = curl_easy_init();
- }
-
- list<string> myParams;
- string strVar;
- string strResult;
- //////////////////////////////////////////////////////////////////////////
- // methodname
- strVar = string("method=") + string("shop.getShopApp");
- myParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // User ID
- if (NULL != strUserId)
- {
- strVar = string("uid=") + string(strUserId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // ShopKeeperId
- if (NULL != strShopId)
- {
- strVar = string("shopId=") + string(strShopId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // startIndex
- if (NULL != strIndex)
- {
- strVar = string("startIndex=") + string(strIndex);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // maxNum
- if (NULL != strMaxNum)
- {
- strVar = string("maxNum=") + string(strMaxNum);
- myParams.push_back(strVar);
- }
- //////////////////////////////////////////////////////////////////////////
- //orderByName
- if (NULL != strOrderByName)
- {
- strVar = string("orderByName=") + string(strOrderByName);
- myParams.push_back(strVar);
- }
- //////////////////////////////////////////////////////////////////////////
- //orderDirec
- if (NULL != strOrderDirec)
- {
- strVar = string("orderDirec=") + string(strOrderDirec);
- myParams.push_back(strVar);
- }
- //////////////////////////////////////////////////////////////////////////
- //构造其他参数
- StructureParams(myParams);
-
- //发送并接受数据
- strResult = SendAndRecvPackage(myParams);
- return strResult;
- }
- /// 获取成交记录:
- string CApiClient::GetDealRecord()
- {
- string strResult;
- return strResult;
- }
- /// 获取买家须知:
- string CApiClient::GetBuyerNotice(const char *strUserId, const char *strShopId)
- {
- if (NULL == m_pcurl)
- {
- m_pcurl = curl_easy_init();
- }
-
- list<string> myParams;
- string strVar;
- string strResult;
- //////////////////////////////////////////////////////////////////////////
- // methodname
- strVar = string("method=") + string("shop.getBuyerPost");
- myParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // User ID
- if (NULL != strUserId)
- {
- strVar = string("uid=") + string(strUserId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // ShopID
- if (NULL != strShopId)
- {
- strVar = string("shopId=") + string(strShopId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- //构造其他参数
- StructureParams(myParams);
-
- //发送并接受数据
- strResult = SendAndRecvPackage(myParams);
- return strResult;
- }
- /// 根据应用ID获取附件ID:
- string CApiClient::GetAffixByApp(const char *strUserId, const char *strAppId)
- {
- if (NULL == m_pcurl)
- {
- m_pcurl = curl_easy_init();
- }
-
- list<string> myParams;
- string strVar;
- string strResult;
- //////////////////////////////////////////////////////////////////////////
- // methodname
- strVar = string("method=") + string("app.getAffixByApp");
- myParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // User ID
- if (NULL != strUserId)
- {
- strVar = string("uid=") + string(strUserId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // AppId
- if (NULL != strAppId)
- {
- strVar = string("appId=") + string(strAppId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- //构造其他参数
- StructureParams(myParams);
-
- //发送并接受数据
- strResult = SendAndRecvPackage(myParams);
- return strResult;
- }
- /// 购买应用:
- string CApiClient::BuyUse(const char *strUserId, const char *strAppId, const char *strAffixId)
- {
- if (NULL == m_pcurl)
- {
- m_pcurl = curl_easy_init();
- }
-
- list<string> myParams;
- string strVar;
- string strResult;
- //////////////////////////////////////////////////////////////////////////
- // methodname
- strVar = string("method=") + string("app.buy");
- myParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // User ID
- if (NULL != strUserId)
- {
- strVar = string("uid=") + string(strUserId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // AppId
- if (NULL != strAppId)
- {
- strVar = string("appId=") + string(strAppId);
- myParams.push_back(strVar);
- }
- //////////////////////////////////////////////////////////////////////////
- // affixId
- if (NULL != strAffixId)
- {
- strVar = string("affixId=") + string(strAffixId);
- myParams.push_back(strVar);
- }
- //////////////////////////////////////////////////////////////////////////
- //构造其他参数
- StructureParams(myParams);
-
- //发送并接受数据
- strResult = SendAndRecvPackage(myParams);
- return strResult;
- }
- /// 下载应用:
- string CApiClient::DownloadUse(const char *strUserId, const char *strAppId, const char *strAffixId)
- {
- if (NULL == m_pcurl)
- {
- m_pcurl = curl_easy_init();
- }
-
- list<string> myParams;
- string strVar;
- string strResult;
- //////////////////////////////////////////////////////////////////////////
- // methodname
- strVar = string("method=") + string("app.down");
- myParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // User ID
- if (NULL != strUserId)
- {
- strVar = string("uid=") + string(strUserId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // AppId
- if (NULL != strAppId)
- {
- strVar = string("appId=") + string(strAppId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // affixId
- if (NULL != strAffixId)
- {
- strVar = string("affixId=") + string(strAffixId);
- myParams.push_back(strVar);
- }
- //////////////////////////////////////////////////////////////////////////
- //构造其他参数
- StructureParams(myParams);
-
- //发送并接受数据
- strResult = SendAndRecvPackage(myParams);
- return strResult;
- }
- /// 设置推荐应用:
- string CApiClient::SetRecomUse(const char *strUserId, const char *strAppId, const char *strArea, const char *strFriendID)
- {
- if (NULL == m_pcurl)
- {
- m_pcurl = curl_easy_init();
- }
-
- list<string> myParams;
- string strVar;
- string strResult;
- //////////////////////////////////////////////////////////////////////////
- // methodname
- strVar = string("method=") + string("app.recommend");
- myParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // User ID
- if (NULL != strUserId)
- {
- strVar = string("uid=") + string(strUserId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // AppId
- if (NULL != strAppId)
- {
- strVar = string("appId=") + string(strAppId);
- myParams.push_back(strVar);
- }
- //////////////////////////////////////////////////////////////////////////
- // strArea
- if (NULL != strArea)
- {
- strVar = string("area=") + string(strArea);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // strFriendID
- if (NULL != strFriendID)
- {
- strVar = string("friendId=") + string(strFriendID);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- //构造其他参数
- StructureParams(myParams);
-
- //发送并接受数据
- strResult = SendAndRecvPackage(myParams);
- return strResult;
- }
- /// 评价应用:
- string CApiClient::EvaluateUse(const char *strUserId, const char *strAppId, const char *strAppRate, const char *strContent)
- {
- if (NULL == m_pcurl)
- {
- m_pcurl = curl_easy_init();
- }
-
- list<string> myParams;
- string strVar;
- string strResult;
- //////////////////////////////////////////////////////////////////////////
- // methodname
- strVar = string("method=") + string("app.evaluate");
- myParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // User ID
- if (NULL != strUserId)
- {
- strVar = string("uid=") + string(strUserId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // AppId
- if (NULL != strAppId)
- {
- strVar = string("appId=") + string(strAppId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // appRate
- if (NULL != strAppRate)
- {
- strVar = string("appRate=") + string(strAppRate);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // content
- if (NULL != strContent)
- {
- strVar = string("content=") + string(strContent);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- //构造其他参数
- StructureParams(myParams);
-
- //发送并接受数据
- strResult = SendAndRecvPackage(myParams);
-
- return strResult;
- }
- /// 获取应用详情:
- string CApiClient::GetUseDetail(const char *strUserId, const char *strAppId)
- {
- if (NULL == m_pcurl)
- {
- m_pcurl = curl_easy_init();
- }
-
- list<string> myParams;
- string strVar;
- string strResult;
- //////////////////////////////////////////////////////////////////////////
- // methodname
- strVar = string("method=") + string("appinfo.getAppInfo");
- myParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // User ID
- if (NULL != strUserId)
- {
- strVar = string("uid=") + string(strUserId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // AppId
- if (NULL != strAppId)
- {
- strVar = string("appId=") + string(strAppId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- //构造其他参数
- StructureParams(myParams);
-
- //发送并接受数据
- strResult = SendAndRecvPackage(myParams);
-
- return strResult;
- }
- /// 获取相关应用:
- string CApiClient::GetOtherUse(const char *strUserId, const char *strAppId,const char *strIndex, const char *strMaxNum)
- {
- if (NULL == m_pcurl)
- {
- m_pcurl = curl_easy_init();
- }
-
- list<string> myParams;
- string strVar;
- string strResult;
- //////////////////////////////////////////////////////////////////////////
- // methodname
- strVar = string("method=") + string("appinfo.getRelativeApp");
- myParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // User ID
- if (NULL != strUserId)
- {
- strVar = string("uid=") + string(strUserId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // AppId
- if (NULL != strAppId)
- {
- strVar = string("appId=") + string(strAppId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // startIndex
- if (NULL != strIndex)
- {
- strVar = string("startIndex=") + string(strIndex);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // maxNum
- if (NULL != strMaxNum)
- {
- strVar = string("maxNum=") + string(strMaxNum);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- //构造其他参数
- StructureParams(myParams);
-
- //发送并接受数据
- strResult = SendAndRecvPackage(myParams);
-
- return strResult;
- }
- /// 获取应用说明:
- string CApiClient::GetUseIntroduction()
- {
- string strResult;
- return strResult;
- }
- /// 获取评价详情:
- string CApiClient::GetEvaluateDetail(const char *strUserId, const char *strAppId,const char *strIndex, const char *strMaxNum)
- {
- if (NULL == m_pcurl)
- {
- m_pcurl = curl_easy_init();
- }
-
- list<string> myParams;
- string strVar;
- string strResult;
- //////////////////////////////////////////////////////////////////////////
- // methodname
- strVar = string("method=") + string("appinfo.getEvaluate");
- myParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // User ID
- if (NULL != strUserId)
- {
- strVar = string("uid=") + string(strUserId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // AppId
- if (NULL != strAppId)
- {
- strVar = string("appId=") + string(strAppId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // startIndex
- if (NULL != strIndex)
- {
- strVar = string("startIndex=") + string(strIndex);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // maxNum
- if (NULL != strMaxNum)
- {
- strVar = string("maxNum=") + string(strMaxNum);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- //构造其他参数
- StructureParams(myParams);
-
- //发送并接受数据
- strResult = SendAndRecvPackage(myParams);
-
- return strResult;
- }
- /// 成交记录:
- string CApiClient::DealRecord()
- {
- string strResult;
- return strResult;
- }
- /// 留言簿:
- string CApiClient::VisitorBook(const char *strUserId, const char *strAppId,const char *strIndex, const char *strMaxNum)
- {
- if (NULL == m_pcurl)
- {
- m_pcurl = curl_easy_init();
- }
-
- list<string> myParams;
- string strVar;
- string strResult;
- //////////////////////////////////////////////////////////////////////////
- // methodname
- strVar = string("method=") + string("appinfo.getGuestbook");
- myParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // User ID
- if (NULL != strUserId)
- {
- strVar = string("uid=") + string(strUserId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // AppId
- if (NULL != strAppId)
- {
- strVar = string("appId=") + string(strAppId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // startIndex
- if (NULL != strIndex)
- {
- strVar = string("startIndex=") + string(strIndex);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // maxNum
- if (NULL != strMaxNum)
- {
- strVar = string("maxNum=") + string(strMaxNum);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- //构造其他参数
- StructureParams(myParams);
-
- //发送并接受数据
- strResult = SendAndRecvPackage(myParams);
-
- return strResult;
- }
- /// 获取店铺精品列表:
- string CApiClient::GetBoutiqueList(const char *strUserId, const char *strIndex, const char *strMaxNum)
- {
- if (NULL == m_pcurl)
- {
- m_pcurl = curl_easy_init();
- }
-
- list<string> myParams;
- string strVar;
- string strResult;
- //////////////////////////////////////////////////////////////////////////
- // methodname
- strVar = string("method=") + string("goodshop.get");
- myParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // User ID
- if (NULL != strUserId)
- {
- strVar = string("uid=") + string(strUserId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // startIndex
- if (NULL != strIndex)
- {
- strVar = string("startIndex=") + string(strIndex);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // maxNum
- if (NULL != strMaxNum)
- {
- strVar = string("maxNum=") + string(strMaxNum);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- //构造其他参数
- StructureParams(myParams);
-
- //发送并接受数据
- strResult = SendAndRecvPackage(myParams);
-
- return strResult;
- }
- /// 获取店铺排行:
- string CApiClient::GetStoreRanking(const char *strUserId, const char *strIndex, const char *strMaxNum, const char *strCondition, const char *strOrderDirec)
- {
-
- if (NULL == m_pcurl)
- {
- m_pcurl = curl_easy_init();
- }
-
- list<string> myParams;
- string strVar;
- string strResult;
- //////////////////////////////////////////////////////////////////////////
- // methodname
- strVar = string("method=") + string("shopinfo.get");
- myParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // User ID
- if (NULL != strUserId)
- {
- strVar = string("uid=") + string(strUserId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // startIndex
- if (NULL != strIndex)
- {
- strVar = string("startIndex=") + string(strIndex);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // maxNum
- if (NULL != strMaxNum)
- {
- strVar = string("maxNum=") + string(strMaxNum);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- //orderByName
- if (NULL != strCondition)
- {
- strVar = string("condition=") + string(strCondition);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- //orderDirec
- if (NULL != strOrderDirec)
- {
- strVar = string("orderDirec=") + string(strOrderDirec);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- //构造其他参数
- StructureParams(myParams);
-
- //发送并接受数据
- strResult = SendAndRecvPackage(myParams);
-
- return strResult;
- }
- /// 获取应用排行:
- string CApiClient::GetUseRanking(const char *strUserId, const char *strAppGroupId, const char *strIndex, const char *strMaxNum, const char *strCondition, const char *strOrderDirec)
- {
-
- if (NULL == m_pcurl)
- {
- m_pcurl = curl_easy_init();
- }
-
- list<string> myParams;
- string strVar;
- string strResult;
- //////////////////////////////////////////////////////////////////////////
- // methodname
- strVar = string("method=") + string("group.getApp");
- myParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // User ID
- if (NULL != strUserId)
- {
- strVar = string("uid=") + string(strUserId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // AppGroupId
- if (NULL != strAppGroupId)
- {
- strVar = string("appGroupId=") + string(strAppGroupId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // startIndex
- if (NULL != strIndex)
- {
- strVar = string("startIndex=") + string(strIndex);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // maxNum
- if (NULL != strMaxNum)
- {
- strVar = string("maxNum=") + string(strMaxNum);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- //orderByName
- if (NULL != strCondition)
- {
- strVar = string("condition=") + string(strCondition);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- //orderDirec
- if (NULL != strOrderDirec)
- {
- strVar = string("orderDirec=") + string(strOrderDirec);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- //构造其他参数
- StructureParams(myParams);
-
- //发送并接受数据
- strResult = SendAndRecvPackage(myParams);
-
- return strResult;
- }
- /// 获取店铺动态列表
- string CApiClient::GetStoreDymList(const char *strUserId, const char *strIndex, const char *strMaxNum)
- {
-
- if (NULL == m_pcurl)
- {
- m_pcurl = curl_easy_init();
- }
-
- list<string> myParams;
- string strVar;
- string strResult;
- //////////////////////////////////////////////////////////////////////////
- // methodname
- strVar = string("method=") + string("storefeed.getAllNewsFeed");
- myParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // User ID
- if (NULL != strUserId)
- {
- strVar = string("uid=") + string(strUserId);
- myParams.push_back(strVar);
- }
- //////////////////////////////////////////////////////////////////////////
- // startIndex
- if (NULL != strIndex)
- {
- strVar = string("startIndex=") + string(strIndex);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // maxNum
- if (NULL != strMaxNum)
- {
- strVar = string("maxNum=") + string(strMaxNum);
- myParams.push_back(strVar);
- }
-
-
- //////////////////////////////////////////////////////////////////////////
- //构造其他参数
- StructureParams(myParams);
-
- //发送并接受数据
- strResult = SendAndRecvPackage(myParams);
-
- return strResult;
- }
- /// 获取全部个性桌面
- string CApiClient::GetAllDesktopInfos(const char* strName, const char* strPass)
- {
- if (NULL == m_pcurl)
- {
- m_pcurl = curl_easy_init();
- }
-
- list<string> myParams;
- string strVar;
- string strResult;
- //////////////////////////////////////////////////////////////////////////
- // methodname
- strVar = string("method=") + string("desktopInfo.getAllDesktopInfos");
- myParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // uName
- if (NULL != strName)
- {
- strVar = string("uName=") + string(strName);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // uPass
- if (NULL != strPass)
- {
- strVar = string("uPass=") + string(strPass);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- //构造其他参数
- StructureParams(myParams);
-
- //发送并接受数据
- strResult = SendAndRecvPackage(myParams);
-
- return strResult;
- }
- /// 删除个性桌面
- string CApiClient::RemoveDesktopInfo(const char* strName, const char* strPass, const char* strSchemeId)
- {
- if (NULL == m_pcurl)
- {
- m_pcurl = curl_easy_init();
- }
-
- list<string> myParams;
- string strVar;
- string strResult;
- //////////////////////////////////////////////////////////////////////////
- // methodname
- strVar = string("method=") + string("desktopInfo.removeDesktopInfo");
- myParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // uName
- if (NULL != strName)
- {
- strVar = string("uName=") + string(strName);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // uPass
- if (NULL != strPass)
- {
- strVar = string("uPass=") + string(strPass);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // schemeId
- if (NULL != strSchemeId)
- {
- strVar = string("schemeId=") + string(strSchemeId);
- myParams.push_back(strVar);
- }
- //////////////////////////////////////////////////////////////////////////
- //构造其他参数
- StructureParams(myParams);
-
- //发送并接受数据
- strResult = SendAndRecvPackage(myParams);
-
- return strResult;
- }
- /// 上传个性桌面
- string CApiClient::UpDesktopInfo(const char* strName, const char* strPass, const char* strSchemeId, const char* strSchemeFtpUrl)
- {
- if (NULL == m_pcurl)
- {
- m_pcurl = curl_easy_init();
- }
-
- list<string> myParams;
- string strVar;
- string strResult;
- //////////////////////////////////////////////////////////////////////////
- // methodname
- strVar = string("method=") + string("desktopInfo.upDesktopInfo");
- myParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // uName
- if (NULL != strName)
- {
- strVar = string("uName=") + string(strName);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // uPass
- if (NULL != strPass)
- {
- strVar = string("uPass=") + string(strPass);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // schemeId
- if (NULL != strSchemeId)
- {
- strVar = string("schemeId=") + string(strSchemeId);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // schemeIdFtpUrl
- if (NULL != strSchemeFtpUrl)
- {
- strVar = string("schemeIdFtpUrl=") + string(strSchemeFtpUrl);
- myParams.push_back(strVar);
- }
- //////////////////////////////////////////////////////////////////////////
- //构造其他参数
- StructureParams(myParams);
-
- //发送并接受数据
- strResult = SendAndRecvPackage(myParams);
-
- return strResult;
- }
- /// 查询个性桌面
- string CApiClient::GetDesktopInfos(const char* strName, const char* strPass, const char* strSchemeId)
- {
- if (NULL == m_pcurl)
- {
- m_pcurl = curl_easy_init();
- }
-
- list<string> myParams;
- string strVar;
- string strResult;
- //////////////////////////////////////////////////////////////////////////
- // methodname
- strVar = string("method=") + string("desktopInfo.getDesktopInfo");
- myParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // uName
- if (NULL != strName)
- {
- strVar = string("uName=") + string(strName);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // uPass
- if (NULL != strPass)
- {
- strVar = string("uPass=") + string(strPass);
- myParams.push_back(strVar);
- }
-
- //////////////////////////////////////////////////////////////////////////
- // schemeId
- if (NULL != strSchemeId)
- {
- strVar = string("schemeId=") + string(strSchemeId);
- myParams.push_back(strVar);
- }
- //////////////////////////////////////////////////////////////////////////
- //构造其他参数
- StructureParams(myParams);
-
- //发送并接受数据
- strResult = SendAndRecvPackage(myParams);
-
- return strResult;
- }
- string CApiClient::md5( string str)
- {
- md5_state_t state;
- md5_byte_t digest[16];
- char hex_output[16*2 + 1];
- int di;
- md5_init( &state );
- md5_append( &state, (const md5_byte_t *) str.c_str( ), (int) strlen( str.c_str( ) ) );
- md5_finish( &state, digest );
- for( di = 0; di < 16; ++di )
- sprintf( hex_output+di * 2, "%02x", digest[di] );
- return string( hex_output );
- }
- string CApiClient::get_signature( list<string> params )
- {
- /**
- * args = array of args to the request, formatted in arg=val pairs
- * sorted_array = alphabetically_sort_array_by_keys(args);
- * request_str = concatenate_in_order(sorted_array);
- * signature = md5(concatenate(request_str, secret))
- *
- */
- string str = get_param_string( params, false );
-
- if( this->has_session )
- str.append( this->m_strSession_key );
- else
- str.append( this->m_szAppSecretKey );
-
- return md5( str );
- }
- string CApiClient::get_param_string( list<string> ¶ms, bool separate )
- {
- list<string>::iterator iter;
- string str;
- params.sort( );
- for( iter = params.begin( ); iter != params.end( ); iter++ )
- {
- str.append( *iter );
- if( separate )
- str.append( "&" );
- }
- if( separate )
- str.erase( str.size() - 1, 1 );
- return str;
- }
- size_t CApiClient::write_callback( void *ptr, size_t size, size_t nmemb, void *userp )
- {
- string *str = (string *) userp;
- str->append( (char *) ptr, size*nmemb );
- return size*nmemb;
- }
- // curl.MD5,JSON
- bool CApiClient::request( string method, list<string> params, string *result )
- {
-
- curl_easy_reset( this->m_pcurl );
-
- #ifdef fb_debug
- curl_easy_setopt( m_pcurl, CURLOPT_VERBOSE, true );
- #endif
-
- // curl_easy_setopt( m_pcurl, CURLOPT_URL, this->server.c_str( ) );
-
- curl_easy_setopt( m_pcurl, CURLOPT_URL, this->m_szWebServiceURL);
-
- stringstream call_str;
- call_str << "call_id=" << this->call_id;
-
- params.push_back( "appkey=" + string(this->m_szAppKey));
- params.push_back( "method=" + string(method ));
-
- if( this->has_session )
- {
- params.push_back( "session_key=" + string(this->m_strSession_key ));
- }
-
- params.push_back( call_str.str( ) );
- params.push_back( "sig=" + this->get_signature( params ) );
-
- string query = CApiClient::get_param_string( params, true );
- curl_easy_setopt( m_pcurl, CURLOPT_POST, true );
- curl_easy_setopt( m_pcurl, CURLOPT_POSTFIELDS, query.c_str( ) );
-
- curl_easy_setopt( m_pcurl, CURLOPT_WRITEFUNCTION, CApiClient::write_callback );
- curl_easy_setopt( m_pcurl, CURLOPT_WRITEDATA, result );
-
- this->res = curl_easy_perform( m_pcurl );
- call_id++;
-
- return (this->res == 0);
- }
- // UTF8转GBK
- string CApiClient::UTF8ToGBK(char *strUTF8)
- {
- int len = MultiByteToWideChar(CP_UTF8, 0, (LPCTSTR)strUTF8, -1, NULL, 0);
- WCHAR * wszGBK = new WCHAR[len + 1];
- memset(wszGBK, 0, len * 2 + 2);
- MultiByteToWideChar(CP_UTF8, 0, (LPCTSTR)strUTF8, -1, wszGBK, len);
-
- len = WideCharToMultiByte(CP_ACP, 0, wszGBK, -1, NULL, 0, NULL, NULL);
- TCHAR *szGBK = new TCHAR[len + 1];
- memset(szGBK, 0, len + 1);
- WideCharToMultiByte(CP_ACP,0, wszGBK, -1, szGBK, len, NULL, NULL);
-
- string strTemp(szGBK);
- delete[]szGBK;
- delete[]wszGBK;
- return strTemp;
- }
- // GBK转UTF8
- int CApiClient::GBKToUTF8(unsigned char * lpGBKStr,unsigned char * lpUTF8Str,int nUTF8StrLen)
- {
- wchar_t * lpUnicodeStr = NULL;
- int nRetLen = 0;
-
- if(!lpGBKStr) return 0;
-
- //获取转换到Unicode编码后所需要的字符空间长度
- nRetLen = ::MultiByteToWideChar(CP_ACP,0,(char *)lpGBKStr,-1,NULL,NULL);
- //为Unicode字符串空间
- lpUnicodeStr = new WCHAR[nRetLen + 1];
- //转换到Unicode编码
- nRetLen = ::MultiByteToWideChar(CP_ACP,0,(char *)lpGBKStr,-1,lpUnicodeStr,nRetLen);
-
- if(!nRetLen) return 0;
-
- //获取转换到UTF8编码后所需要的字符空间长度
- nRetLen = ::WideCharToMultiByte(CP_UTF8,0,lpUnicodeStr,-1,NULL,0,NULL,NULL);
-
- if(!lpUTF8Str)
- {
- if(lpUnicodeStr) delete []lpUnicodeStr;
- return nRetLen;
- }
-
- if(nUTF8StrLen < nRetLen) //如果输出缓冲区长度不够则退出
- {
- if(lpUnicodeStr) delete []lpUnicodeStr;
- return 0;
- }
-
- //转换到UTF8编码
- nRetLen = ::WideCharToMultiByte(CP_UTF8,0,lpUnicodeStr,-1,(char *)lpUTF8Str,nUTF8StrLen,NULL,NULL);
-
- if(lpUnicodeStr)
- delete []lpUnicodeStr;
-
- return nRetLen;
- }
- //删除csSrc里面的cFiltKey单个字符的信息,返回 csDst
- void CApiClient::filterChar(char * csSrc, char * csDst, char cFiltKey)
- {
- char* pC = csSrc;
- char* pCD = csDst;
- while (*pC)
- {
- if(*pC == cFiltKey)
- {
- pC++;
-
- }
- else if (*pC == 0x0D || *pC == 0x0A || *pC == 0x20 || *pC == 0x09)
- {
- pC++;
- }
- else
- {
- *pCD++ = *pC++;
- }
- }
- *pCD = ' ';
- }
- //删除csSrc里面的csFiltKey关键字的"<> </>"信息,返回 csDst
- void CApiClient::filterString(char * csSrc, char * csDst, char * csFiltKey)
- {
- char* pC = csSrc;
- char* pCD = csDst;
- while (*pC)
- {
- int tt = strlen(csFiltKey);
-
- if(!memcmp(pC, csFiltKey, tt))
- {
- pC = pC + tt;
-
- }
- else if (*pC == '<' || (*pC == '<' && *(++pC) == '/') )
- {
- pC++;
- }
- else
- {
- *pCD++ = *pC++;
- }
- }
- *pCD = ' ';
- }
- //删除csSrc里面所有"<> </>"信息,返回 csDst
- void CApiClient::filterString2(char * csSrc, char * csDst)
- {
- char* pC = csSrc;
- char* pCD = csDst;
-
- bool bCopy = false;
- while (*pC)
- {
- if (*pC == '<' || (*pC == '<' && *(++pC) == '/') )
- {
- bCopy = false;
- pC++;
- }
- if (bCopy == true )
- {
- if (*pC == 0x0D || *pC == 0x0A || *pC == 0x20 || *pC == 0x09)
- {
- ;
- }
- else
- *pCD++ = *pC;
- }
-
- if(*pC == '>')
- {
- bCopy = true;
- }
- pC++;
- }
- *pCD = ' ';
- }
- //构造其他参数
- void CApiClient::StructureParams(list<string>& lstParams)
- {
- string strVar;
- //////////////////////////////////////////////////////////////////////////
- // timestamp=32432
- int nTimeValue = GetTickCount();
- CTime time = CTime::GetCurrentTime();
- CString csStartTime = time.Format("%Y-%m-%d %H:%M:%S");
-
- strVar = string("timestamp=") + string(csStartTime);
- lstParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // sessionkey=sdfsdf
- strVar = string("sessionkey=sdfsdf");
- lstParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // appkey=kasdfas
- strVar = string("appkey=") + string(this->m_szAppKey);
- lstParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // v=1.0
- strVar = string("v=") + string("1.0");
- lstParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // format=json
- if (m_szFormat)
- {
- strVar = string("format=") + string(m_szFormat);
- }
- else
- {
- strVar = string("format=") + string("json");
- }
- lstParams.push_back(strVar);
-
- //////////////////////////////////////////////////////////////////////////
- // sig=ADF578909
- lstParams.push_back( "sig=" + this->get_signature( lstParams ) );
- }