// SendDemo.cpp : Defines the entry point for the console application. // qiruiyun vc++ demo #include "stdafx.h" #include <Windows.h> #include "winhttp.h" #pragma comment(lib,"winhttp.lib") #include <string> #include <tchar.h> using namespace std; string httpClient( wchar_t * host, int port, wchar_t * url); int main( int argc, char *argv[]) { //un APIKey(接口账号) //pw APISecret(接口密钥) string ret = httpClient(L "api.duanxin.com" , 7891, L "/mt?dc=8&sm=【短信网】您的验证码是:548977&da=15100000000&un=2288**0010&pw=ae2600e9456f5b0b3ab8&tf=3&rf=1&rd=0" ); printf ( "%s\n" , ret.c_str()); return 0; } string httpClient( wchar_t * host, int port, wchar_t * url) { string respStr; DWORD dwSize = 0; DWORD dwDownloaded = 0; LPSTR pszOutBuffer; BOOL bResults = FALSE; HINTERNET hSession = NULL, hConnect = NULL, hRequest = NULL; // Use WinHttpOpen to obtain a session handle. hSession = WinHttpOpen(L "A WinHTTP Example Program/1.1" , WINHTTP_ACCESS_TYPE_DEFAULT_PROXY, WINHTTP_NO_PROXY_NAME, WINHTTP_NO_PROXY_BYPASS, 0); // Specify an HTTP server INTERNET_DEFAULT_HTTP_PORT if (hSession) hConnect = WinHttpConnect(hSession, host, port, 0); // Create an HTTP Request handle. if (hConnect) hRequest = WinHttpOpenRequest(hConnect, L "GET" , url, NULL, WINHTTP_NO_REFERER, WINHTTP_DEFAULT_ACCEPT_TYPES, 0); // Send a Request. if (hRequest) bResults = WinHttpSendRequest(hRequest, WINHTTP_NO_ADDITIONAL_HEADERS, 0, WINHTTP_NO_REQUEST_DATA, 0, 0, 0); // End the request. if (bResults) bResults = WinHttpReceiveResponse(hRequest, NULL); // Continue to verify data until there is nothing left. if (bResults) { do { // Verify available data. dwSize = 0; if (!WinHttpQueryDataAvailable(hRequest, &dwSize)) printf ( "Error %u in WinHttpQueryDataAvailable.\n" , GetLastError()); // Allocate space for the buffer. pszOutBuffer = new char [dwSize+1]; // Read the Data. ZeroMemory(pszOutBuffer, dwSize+1); if (!WinHttpReadData(hRequest, ( LPVOID )pszOutBuffer, dwSize, &dwDownloaded)) printf ( "Error %u in WinHttpReadData.\n" , GetLastError()); else //printf("%s\n", pszOutBuffer); respStr += _T(pszOutBuffer); // Free the memory allocated to the buffer. delete [] pszOutBuffer; } while (dwSize > 0); } // Report errors. if (!bResults) printf ( "Error %d has occurred.\n" , GetLastError()); // Close open handles. if (hRequest) WinHttpCloseHandle(hRequest); if (hConnect) WinHttpCloseHandle(hConnect); if (hSession) WinHttpCloseHandle(hSession); return respStr; } |
√ 短信接口 :
1)短信内容一定要带签名,签名放在短信内容的最前面;
2)签名格式:【***】,签名内容为三个汉字以上(包括三个);
3)短信内容不允许双签名,即短信内容里只有一个"【】";
4)短信签名先申请报备后使用,控制台>接口短信>签名报备;