#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);
}
分享到:
相关推荐
上期所CTP-Api之C++交易Demo版,到SIMNOW申请模拟账号后可以实时进行期货的模拟交易,也可以使用从证券公司注册的账号进行交易。
- 文中提到了C++ Builder这一开发环境,通过调用PI-API,开发者可以编写程序来实现对PI数据库的访问。文件中指出,这种基于PI-API的访问方法已经被应用到电力负荷预测系统中,实现了对电力负荷数据的有效访问。 4. ...
CTP接口 c++版本的示例。 主要实现了如下功能,交易服务器的登录, 发送报单, 报单回复处理, 仓位查询等功能。
这篇"**C++调用python demo**"提供了一个实例,演示了如何使用C++来调用Python脚本,帮助开发者理解这两种语言之间的接口操作。下面将详细阐述相关知识点。 首先,C++与Python的交互主要依赖于`Python C API`...
通过C++代码调用百度地图API,一个简单实用的百度地图操作实例,希望能给大家带来帮助。
Node-API (N-API) 是由 Node.js 官方提供的一个 API,它允许开发者用 C/C++ 编写可跨 Node.js 版本的模块。这个压缩包“Module for using Node-API from C++.zip”显然是一个关于如何使用 C++ 与 Node-API 进行交互...
上期所CTP-Api之C++行情Demo版,到SIMNOW申请模拟账号后,可以实时接收所有期货数据。
本示例主要关注如何使用C++编程语言在Windows环境下通过VS2019集成开发环境与阿里云API接口进行集成,实现短信的发送功能。 首先,你需要在阿里云官网注册账号并创建一个服务,获取到相应的Access Key ID和Access ...
本实例——"C++网络编程实例——网络编程DEMO",旨在通过Visual Studio 2005(VC++)环境,提供一个实践性的教程,帮助开发者掌握C++中的网络编程基础。 首先,C++网络编程主要依赖于套接字(Sockets)API,这是...
本案例中,我们将探讨如何使用C#调用C++编写的DLL,该DLL内部集成了OpenCV库来处理微信二维码的识别。OpenCV是一个强大的计算机视觉库,而微信二维码识别则涉及移动支付和社交应用中的关键功能。 首先,我们需要...
字符串转换是跨语言通信中常见的操作,C#可能提供了丰富的字符串处理API,而在C++中需要进行适当的转换以匹配C#的接口。 在实际应用中,为了更好地管理和维护,我们可能会使用C++/CLI这样的混合编程技术,它允许...
本文将详细介绍如何在C#中调用C++ API,以及如何使用接口转换工具来简化这一过程。 首先,C#调用C++ API主要通过以下两种方式: 1. **P/Invoke(Platform Invoke)**:这是.NET Framework提供的一种机制,允许C#...
llama.cpp C++ api开发入门demo。加载llama模型,生成回答语句
使用 C、C++ 调用 Windows API 操作 Office 组件 在 Windows 平台上,使用 C 或 C++ 调用 Windows API 来操作 Office 组件是一种常见的需求。由于 Office 组件提供了 COM 接口,因此可以使用 C 或 C++ 语言来调用...
2. **Node.js的N-API**:虽然Node.js本身是用JavaScript编写的,但其提供了N-API,这是一个稳定的C/C++接口,用于创建可被JavaScript调用的原生模块。在C++中,可以使用N-API编写模块,然后在JavaScript环境中调用...
api文档, 当手册来用的.chm格式 个人感觉还是挺不错的文档.
本文将围绕"大华相机Demo-C++.rar"这一压缩包,深入解析其中包含的C++案例,帮助读者理解和掌握如何使用大华工业相机进行程序开发。 首先,我们要明确“大华工业相机”是指大华公司推出的专用于工业自动化、检测、...
`testsha256`这个文件名可能是指的示例程序或测试用例,它可能包含一个简单的C++程序,用于演示如何调用SHA-256函数计算一个字符串或文件的哈希值。这样的程序通常包括读取输入、调用哈希函数、将结果转换为十六进制...