(原创)cpprestsdk实现极光推送

下面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
//推送极光短信
int HtRestSDKDll_JGSendSms(const char* pJPAppKey,const char* pJPMasterSecret,const char *pJson)
{
char pBase64Org[1024];
char pAuth[1024];

memset(pBase64Org, 0, sizeof(pBase64Org));
memset(pAuth, 0, sizeof(pAuth));
sprintf(pBase64Org, "%s:%s", pJPAppKey, pJPMasterSecret);
std::string pBase64Rlt = base64_encode((unsigned char*)pBase64Org, strlen(pBase64Org));


sprintf(pAuth, "%s %s", "Basic", pBase64Rlt.c_str());

utility::string_t szAuth = pAuth;

http_client_config config;
config.set_timeout(utility::seconds(90)); //设置为90秒超时
http_client client(U("https://api.sms.jpush.cn/v1/messages"), config);

http_request request(methods::POST);
request.headers().add(U("Content-Type"), U("application/json"));
request.headers().add(U("Authorization"), szAuth);
request.set_body(U(pJson));
client.request(request).get();
// http_response response = client.request(request).get();

// streams::stringstreambuf sbuffer;
// auto& target = sbuffer.collection();
// response.body().read_to_end(sbuffer).get();
// printf("%s,pJson=%s\n", target.c_str(),pJson);

return 0;
}

//推送极光语音验证码
int HtRestSDKDll_JGSendVoice(const char* pJPAppKey,const char* pJPMasterSecret,const char *pJson)
{
char pBase64Org[512];
char pAuth[1024];

memset(pBase64Org, 0, sizeof(pBase64Org));
memset(pAuth, 0, sizeof(pAuth));
sprintf(pBase64Org, "%s:%s", pJPAppKey, pJPMasterSecret);
std::string pBase64Rlt = base64_encode((unsigned char*)pBase64Org, strlen(pBase64Org));


sprintf(pAuth, "%s %s", "Basic", pBase64Rlt.c_str());

utility::string_t szAuth = pAuth;

http_client_config config;
config.set_timeout(utility::seconds(90)); //设置为90秒超时
http_client client(U("https://api.sms.jpush.cn/v1/voice_codes"), config);

http_request request(methods::POST);
request.headers().add(U("Content-Type"), U("application/json"));
request.headers().add(U("Authorization"), szAuth);
request.set_body(U(pJson));
client.request(request).get();
/*http_response response = client.request(request).get();

streams::stringstreambuf sbuffer;
auto& target = sbuffer.collection();
response.body().read_to_end(sbuffer).get();
printf("%s,pJson=%s\n", target.c_str(),pJson);*/

return 0;
}

//推送极光通知
int HtRestSDKDll_JGSendNotify(const char* pJPAppKey,const char* pJPMasterSecret,const char *pJson)
{
char pBase64Org[1024];
char pBase64Dst[2048];

memset(pBase64Org, 0, sizeof(pBase64Org));
memset(pBase64Dst, 0, sizeof(pBase64Dst));
sprintf(pBase64Org, "%s:%s", pJPAppKey, pJPMasterSecret);
std::string pBase64Rlt = base64_encode((unsigned char*)pBase64Org, strlen(pBase64Org));


sprintf(pBase64Dst, "%s %s", "Basic", pBase64Rlt.c_str());
printf("%s,Line=%d,pBase64Dst=%s\n", __FUNCTION__,__LINE__,pBase64Dst);

utility::string_t szAuth = pBase64Dst;

http_client_config config;
config.set_timeout(utility::seconds(90)); //设置为90秒超时
http_client client(U("https://api.jpush.cn/v3/push"), config);

http_request request(methods::POST);
request.headers().add(U("Content-Type"), U("application/json"));
request.headers().add(U("Authorization"), pBase64Dst);
request.set_body(pJson);
client.request(request).get();

/*http_response response = client.request(request).get();

streams::stringstreambuf sbuffer;
auto& target = sbuffer.collection();
response.body().read_to_end(sbuffer).get();
printf("%s,pJson=%s\n", target.c_str(),pJson);*/

return 0;
}

多谢打赏
-------------本文结束感谢您的阅读-------------
0%