c++利用飞信API免费发短信

一、飞信接口介绍

    该飞信接口是基于HTTP协议的接口,可以在任何支持HTTP协议的程序中使用。一些不能用PHP的朋友们可以使用此飞信接口,另外可以避免飞信不断升级导致的源程序不可用。本接口同时支持HTTPS,可避免在网络传输中泄漏数据。

    (1)飞信接口调用方式,参数同时支持GET、POST两种方式 

http://quanapi.sinaapp.com/fetion.php?u=飞信登录手机号&p=飞信登录密码&to=接收飞信的手机号&m=飞信内容

(2)使用HTTPS调用飞信接口,只需将HTTP改为HTTPS 

https://quanapi.sinaapp.com/fetion.php?u=飞信登录手机号&p=飞信登录密码&to=接收飞信的手机号&m=飞信内容

 (3)返回结果为Json格式,result=0时表示发送成功 

{“result”:0,”message”:”\u53d1\u9001\u6210\u529f”}

    二、使用HTTPS调用飞信接口举例

 1、头文件如下:

/************************************************************************/ 
/* 
文件名称:FeiXin.h
功能介绍:利用飞信的免费API接口发送短信
版本:v1.00(初版)
作者:moki
日期:2014.01.06
*/
/************************************************************************/
#ifndef __FEIXIN__H_
#define __FEIXIN__H_
#include <Windows.h>
#include <string>
#include <wininet.h>
#include <stdio.h>

 

#define FX_MAXSIZE 4096
#pragma comment(lib, "Wininet.lib") 
class CFeiXin
{
public:
 //发送短信
 static int FX_SendMessage(char* _usrname,char* _password,char* _number,char* _sms);
 //发送http请求
 static int FX_SendHttp(char* _url);
protected:
 CFeiXin(){}
 ~CFeiXin(){}
private:
 static std::string m_url;
};
#endif

2、cpp文件如下:

#include "FeiXin.h"
std::string CFeiXin::m_url = "https://quanapi.sinaapp.com/fetion.php";
int CFeiXin::FX_SendMessage(char* _usrname,char* _password,char* _number,char* _sms)
{
 int ret = 0;
 char chbuf[FX_MAXSIZE] = {0};
 sprintf(chbuf,"%s?u=%s&p=%s&to=%s&m=%s",m_url.c_str(),_usrname,_password,\
   _number,_sms);
 ret = FX_SendHttp(chbuf);
 return ret;
}
//发送http请求
int CFeiXin::FX_SendHttp(char* _url)
{
 int ret = 0;
 HINTERNET hSession = InternetOpen("UrlFeiXin", INTERNET_OPEN_TYPE_PRECONFIG, 
  NULL, NULL, 0);
 char strresult[256] = {0};
 if(hSession != NULL)
 {
  HINTERNET hHttp = InternetOpenUrl(hSession, _url, NULL, 0, 
   INTERNET_FLAG_DONT_CACHE, 0);
  if (hHttp != NULL)
  {
   BYTE Temp[FX_MAXSIZE];
   ULONG Number = 1;
   while (Number > 0)
   {
    InternetReadFile(hHttp, Temp, FX_MAXSIZE - 1, &Number);
    Temp[Number] = '\0';
    sprintf(strresult,"%s", Temp);
    //解析返回码
    std::string str = strresult;
    int startpos = str.find_first_of(":")+1;
    int endpos = str.find_first_of(",");
    std::string strcode = str.substr(startpos,endpos-startpos);
    ret = atol(strcode.c_str());
   }
   InternetCloseHandle(hHttp);
   hHttp = NULL;
  }
  InternetCloseHandle(hSession);
  hSession = NULL;
 } 
 return ret;
}

3、main函数调用发送

#include <iostream>
#include "..\FeiXin\FeiXin.h"
using namespace std;
int main(int argc, char* argv[])
{
 //
 DWORD ret = CFeiXin::FX_SendMessage("飞信登录手机号","飞信登录密码","接收飞信的手机号",
  "飞信内容");
 if (ret != 0)
 {
  cout << "发送短信失败" << endl;
 }
 else
 {
  cout << "发送短信成功" << endl;
 }
 return 0;
}

使用vs2010编译通过,源码如下:

http://yunpan.cn/QzJ3VmLT9iFmY 

访问密码请发我邮箱索取,我的邮箱是:

[email protected]

 

 

你可能感兴趣的:(c++、飞信接口、短信、免费)