//接口类型:互亿无线国际短信接口。
// 账户注册:请通过该地址开通账户http://user.ihuyi.com/?AX7wLG
// 注意事项:
//(1)调试期间,请仔细阅读接口文档;
//(2)请使用 APIID 及 APIKEY来调用接口,可在会员中心获取;
//(3)该代码仅供接入互亿无线短信接口参考使用,客户可根据实际需要自行编写;// 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 <unistd.h>#define SA struct sockaddr
#define MAXLINE 4096
#define MAXSUB  2000
#define MAXPARAM 2048
#define LISTENQ 1024extern int h_errno;int basefd;
char *hostname = "api.isms.ihuyi.com";
char *send_sms_uri = "/webservice/isms.php?method=Submit&format=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.0\r\n""Host: %s\r\n""Content-type: application/x-www-form-urlencoded\r\n""Content-length: %zu\r\n\r\n""%s", page, hostname, strlen(poststr), poststr);write(basefd, sendline, strlen(sendline));while ((n = read(basefd, recvline, MAXLINE)) > 0) {recvline[n] = '\0';printf("%s", recvline);}return n;
}/**
* 发送短信
*/
ssize_t send_sms(char *account, char *password, char *mobile, char *content)
{char params[MAXPARAM + 1];char *cp = params;sprintf(cp,"account=%s&password=%s&mobile=%s&content=%s", account, password, mobile, content);return http_post(send_sms_uri, cp);
}int  socked_connect(char *arg)
{struct sockaddr_in their_addr = {0};  char buf[1024] = {0};  char rbuf[1024] = {0};  char pass[128] = {0};  struct hostent *host = NULL;   int sockfd = socket(AF_INET, SOCK_STREAM, 0);if(sockfd<0){printf ("create the sockfd is failed\n");return -1;}if((host = gethostbyname(arg))==NULL)  {  printf("Gethostname error, %s\n");  return -1; }  memset(&their_addr, 0, sizeof(their_addr));  their_addr.sin_family = AF_INET;  their_addr.sin_port = htons(80);  their_addr.sin_addr = *((struct in_addr *)host->h_addr);if(connect(sockfd,(struct sockaddr *)&their_addr, sizeof(struct sockaddr)) < 0)  {  close(sockfd);return  -1;}  printf ("connect is success\n");return sockfd;}int main(void)
{struct sockaddr_in servaddr;char str[50];#if 0//建立socket连接sockfd = socket(AF_INET, SOCK_STREAM, 0);bzero(&servaddr, sizeof(servaddr));servaddr.sin_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));#endifif((basefd= socked_connect(hostname))==-1){printf("connect is failed\n");return -1;}printf("basefd is =%d\n",basefd);//查看用户名 登录用户中心->国际验证码>产品总览->API接口信息->APIIDchar *account = "用户名";//查看密码 登录用户中心->国际验证码>产品总览->API接口信息->APIKEYchar *password = "密码";//手机号char *mobile = "138xxxxxxxx";//短信内容char *message = "Your verification code is 1125";/**************** 发送短信 *****************/send_sms(account, password, mobile, message);printf("send the message is success\n");close(basefd);exit(0);
}

C++对接国际验证码接口DEMO示例相关推荐

  1. C对接国际验证码接口DEMO示例

    本文为您提供了C语言版本的国际验证码接口对接DEMO示例 //接口类型:互亿无线国际短信接口. //账户注册:请通过该地址开通账户 http://user.ihuyi.com/?AX7wLG //注意 ...

  2. ASP对接国际验证码接口DEMO示例

    本文为您提供了ASP语言版本的国际验证码接口对接DEMO示例 ,接口类型:互亿无线国际短信接口. ,账户注册:请通过该地址开通账户http://user.ihuyi.com/?AX7wLG ,注意事项 ...

  3. ASP.NET(C#)对接国际验证码接口DEMO示例

    本文为您提供了ASP.NET(C#)语言版本的国际验证码接口对接DEMO示例 //接口类型:互亿无线国际短信接口. //账户注册:请通过该地址开通账户http://user.ihuyi.com/?AX ...

  4. JSP对接国际验证码接口DEMO示例

    本文为您提供了JSP语言版本的国际验证码接口对接DEMO示例 String postUrl = "http://api.isms.ihuyi.com/webservice/isms.php? ...

  5. PHP对接国际验证码接口DEMO示例

    本文为您提供了PHP语言版本的国际验证码接口对接DEMO示例 /接口类型:互亿无线国际短信接口. //账户注册:请通过该地址开通账户 http://user.ihuyi.com/?AX7wLG //注 ...

  6. VB6对接语音验证码接口DEMO示例

    防刷单,避免固话.黑名单等短信盲区 有效 Private Sub Form_Load()Winsock1.Protocol = sckTCPProtocolWinsock1.RemoteHost = ...

  7. PYTHON对接国际验证码接口

    本文为您提供了PYTHON语言版本的国际验证码接口对接DEMO示例 #接口类型:互亿无线国际短信接口. #账户注册:请通过该地址开通账户 http://user.ihuyi.com/?AX7wLG # ...

  8. SHELL对接国际验证码接口

    本文为您提供了SHELL语言版本的国际验证码接口对接DEMO示例 #接口类型:互亿无线国际短信接口. #账户注册:请通过该地址开通账户http://user.ihuyi.com/?AX7wLG #注意 ...

  9. ASP对接语音通知接口DEMO示例

    <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> <%'接口类型:互亿无线语音通知接口.'账户注册:请通过该地址 ...

最新文章

  1. dubbo学习之-常用功能
  2. 4.Azure创建点到站点的***隧道(下)
  3. Ubuntu16.04在线安装MongoDB详细教程
  4. 《算法导论》学习总结 — 2.第一章 第二章 第三章
  5. 【全真互联网下音视频技术创新应用】
  6. 使用工具分析 SAP UI5 应用前端执行的性能问题
  7. 判断两条链表是否交叉,若有交叉,返回交叉节点的指针。
  8. Pytorch基础(九)——损失函数
  9. 一次Task.Run异常问题的排查
  10. Git中的pull request真正比较的是什么?
  11. 华为ac控制器web配置手册_欧姆龙AC伺服系统1S系列产品型号说明及功能介绍
  12. 苹果CEO库克改名字了?都是因为他...
  13. “元宇宙”究竟是什么?我用最通俗的大白话给IT人说清楚
  14. thinkphp源码分析(三)—自动加载篇(Loader的分析)
  15. networkx怎么显示图_如何将标签添加到networkx图形中的节点?
  16. [Bzoj1085] [SCOI2005]骑士精神
  17. JAVA变量直接可以相加不,Java学习第一天
  18. 如何更改PDF文件中的字体?
  19. WASCE (基于geronimo ) 配置
  20. linux一键烧写应用程序工具--自制

热门文章

  1. SQL注入-二次注入和多语句注入
  2. Vue双向绑定:原理篇(详细)
  3. 【一级讲解】不可思议唤来不可思议β——数学排列组合
  4. 如何利用IDEA将项目打包
  5. TCP/UDP、TCP/IP区别
  6. Jmeter——BeanShell PreProcessor的用法
  7. Win7 64位中MinGW和MSYS的安装
  8. includes的用法
  9. 注解-Annotation
  10. 为什么要学网络安全?如何学习网络安全?这3个理由告诉你(自己整理的50G网安资料)