You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
SOP/sop-sdk/sdk-c++/common/OpenClient.h

62 lines
1.4 KiB

#ifndef SDK_CXX_OPENCLIENT_H
#define SDK_CXX_OPENCLIENT_H
#include <string>
4 years ago
#include <json/json.h>
#include "httplib.h"
#include "../request/BaseRequest.h"
using namespace std;
/**
*
*/
class OpenClient {
private:
/** 应用id */
string appId;
4 years ago
string url;
/** 私钥文件路径 */
string privateKeyFilePath;
public:
/**
*
* @param appId ID
* @param privateKeyFilePath
* @param url URL
*/
OpenClient(const string &appId, const string &privateKeyFilePath, const string &url);
/**
*
* @param request BaseRequest的子类
* @param token token
* @return
*/
4 years ago
Json::Value execute(BaseRequest *request, const string& token);
/**
*
* @param request BaseRequest的子类
* @return
*/
4 years ago
Json::Value execute(BaseRequest *request);
private:
map<string, string> buildParams(BaseRequest *request, const string& token);
static httplib::MultipartFormDataItems
getMultipartFormDataItems(map<string, string> allParams, vector<FileInfo> fileInfoList);
static httplib::Params getParams(map<string, string> params);
4 years ago
static string getQuery(map<string, string> params);
static Json::Value parseResponse(const string& responseBody,BaseRequest *request);
};
#endif //SDK_CXX_OPENCLIENT_H