C++调取国际短信验证码----创蓝253云通讯平台---demo


#include <arpa/inet.h>

#include <assert.h>

#include <errno.h>

#include <netinet/in.h>

#include <signal.h>

#include <stdlib.h>

#include <stdio.h>

#include <string.h>

#include <sys/types.h>

#include <sys/socket.h>

#include <sys/wait.h>

#include <netdb.h>

//#include <accountistd.h>

#define SA struct sockaddr

#define MAXLINE 4096

#define MAXSUB 2000

#define MAXPARAM 2048

#define LISTENQ 1024

//线上线下接口宏开关

#define ONLINE

extern int h_errno;

int sockfd;

char *hostname = "118.178.16.150";

char *send_sms_uri = "/send/json";

char *query_balance_uri = "/balance/json";

/**

* * 发http post请求

* */

ssize_t http_post(char *page, char *poststr)

{

char sendline[MAXLINE + 1], recvline[MAXLINE + 1];

ssize_t n;

snprintf(sendline, MAXSUB,

"POST %s HTTP/1.1\r\n"

"Host: intapi.253.com\r\n"

"Content-type: application/json\r\n"

"Content-length: %zu\r\n\r\n"

"%s", page, strlen(poststr), poststr);

//, page, poststr);

write(sockfd, sendline, strlen(sendline));

printf("\n%s", sendline);

printf("\n--------------------------\n");

while ((n = read(sockfd, recvline, MAXLINE)) > 0) {

recvline[n] = '\0';

printf("%s\n", recvline);

}

return n;

}

/**

* * 查账户余额

* */

ssize_t get_balance(char *account, char *password)

{

char params[MAXPARAM + 1];

char *cp = params;

sprintf(cp,"{\"account\":\"%s\",\"password\":\"%s\"}", account, password);

return http_post(query_balance_uri, cp);

}

/**

* * 发送短信

* */

ssize_t send_sms(char *account, char *password, char *mobile, char *msg)

{

char params[MAXPARAM + 1];

char *cp = params;

sprintf(cp,"{\"account\":\"%s\",\"password\":\"%s\",\"mobile\":\"%s\",\"msg\":\"%s\"}", account, password, mobile, msg);

return http_post(send_sms_uri, cp);

}

int main(void)

{

struct sockaddr_in servaddr;

char str[50];

//建立socket连接

sockfd = socket(AF_INET, SOCK_STREAM, 0);

bzero(&servaddr, sizeof(servaddr));

servaddr.sin_addr.s_addr = inet_addr(hostname);

servaddr.sin_family = AF_INET;

servaddr.sin_port = htons(80);

inet_pton(AF_INET, str, &servaddr.sin_addr);

connect(sockfd, (SA *) & servaddr, sizeof(servaddr));

char *account = "";

char *password = "a.123456987";

//手机号码,格式(区号+手机号码),例如:8615800000000,其中86为中国的区号

char *mobile = "8615800000000";

//必须带签名

char *msg = "【253云通讯】您的验证码是123400";

//get_balance(account, password);

send_sms(account, password, mobile, msg);

close(sockfd);

exit(0);

}

优质内容筛选与推荐>>
1、求美人赏月图
2、发布MeteoInfo Java 1.2.2
3、新的一年,激励自己的一篇日志
4、取出相应用户分类名以及字段id的sql语句(两表查询)
5、wifi主要特性


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号