рдХрднреА-рдХрднреА рдЕрдкрдиреЗ рдлреЛрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдпрд╛ рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдПрдХ рдХрдВрдкреНрдпреВрдЯрд░ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЗрдВрдЯрд░рдиреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдФрд░ рдПрдХ рдЦреБрд▓реЗ рдХрдВрд╕реЛрд▓ рд╣реИ, рддреЛ рд╕рд╣реА рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рдЕрдирд╛рдо рд╕рдВрджреЗрд╢ рднреЗрдЬрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдХрдИ рдлрд┐рд▓реНрдореЛрдВ рдореЗрдВ рдПрдХ рдРрд╕рд╛ рдХреНрд╖рдг рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдХреНрд░реИрдХ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╣реИрдХрд░ рдХреЛ рд╡рд┐рдЪрд▓рд┐рдд рдХрд░рдиреЗ рдпрд╛ рдбрд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕рдХреЗ рдирдВрдмрд░ рдкрд░ рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рд╡реНрдпрдХреНрддрд┐ рдЙрд╕ рдирдВрдмрд░ рдкрд░ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдПрд╕рдПрдордПрд╕ рдЖрдпрд╛ рдерд╛, рддреЛ рдЖрдкрдХреЗ рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдХреА рд╕реНрдХреНрд░реАрди рдкреНрд░рдХрд╛рд╢ рдореЗрдВ рдирд╣реАрдВ рдЖрддреА рд╣реИ рдФрд░ рд╕рдВрдЧреАрдд рдмрдЬрдиреЗ рд▓рдЧрд╛ред рдЙрдлрд╝ ... рдЕрдЬреАрдм рд╕реНрдерд┐рддрд┐ред рдЗрд╕ рд╡рд┐рд╖рдп рдореЗрдВ, рд╣рдо C ++ рдореЗрдВ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦреЗрдВрдЧреЗ рдЬреЛ рдЖрдкрдХреЛ рдЕрдкрдирд╛ рдирдВрдмрд░, рд╕рд┐рдо рдХрд╛рд░реНрдб рдФрд░ рдЖрддреНрдорд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдПрд╕рдПрдордПрд╕ рднреЗрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

"рдЧреБрдордирд╛рдореА" рд╢рдмреНрдж рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЬрд┐рд╕рдиреЗ рд╕рдВрджреЗрд╢ рднреЗрдЬрд╛ рд╣реИ рд╡рд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди, рдЗрд╕ рддрдереНрдп рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рддрд╛рдХрд┐ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЧрдВрднреАрд░ рдЪреБрдЯрдХреБрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдореИрдВ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЖрдкрд╕реЗ рдорд┐рд▓рдиреЗ рдирд╣реАрдВ рдЖрдКрдВрдЧрд╛ред
рдЪреЗрддрд╛рд╡рдиреАред рдХрд╛рд░реНрдп рдХреЛ рдЖрд╕рд╛рди рддрд░реАрдХреЛрдВ рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛ред рдЗрд╕ рд╡рд┐рд╖рдп рдореЗрдВ, рд╕рдорд╛рдзрд╛рдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ c ++ рднрд╛рд╖рд╛ рдореЗрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЪрд▓реЛ рд╡реНрдпрд╛рдкрд╛рд░ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЙрддрд░реЛред
рдмрд╛рдЗрдЯрд╣реИрдВрдб рд╕реЗрд╡рд╛ рдПрдХ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рд╕рдорд╛рдзрд╛рди рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдореЗрд▓рд┐рдВрдЧ рдФрд░ рдПрдХрд▓ рд╕рдВрджреЗрд╢ рджреЛрдиреЛрдВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╕реЗрд╡рд╛ рдХреА рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛ рдФрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рдХреНрдпреЛрдВ рдЪреБрдирд╛ рдпрд╣ рд╕рднреА рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рд╕реЗ рдЙрдкрд▓рдмреНрдз рдПрдХ рдПрдкреАрдЖрдИ рд╣реИ, рдЬреЛ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рд╛рде рдПрдХ HTTP рдЕрдиреБрд░реЛрдз-рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реИред
рдпрд╣рд╛рдБ рд╣рдореЗрдВ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП:
- рдмрд╛рдИрдЯрд╣реИрдВрдб рдЦрд╛рддрд╛
- рдЦрд╛рддреЗ рдореЗрдВ 100 рд░реВрдмрд▓ (рдФрд░ рдЖрдк рдХреНрдпрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдПрд╕рдПрдордПрд╕ рдореБрдлреНрдд рдирд╣реАрдВ рд╣реИ)
- C ++ рдХрдВрд╕реЛрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдо
- Https рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рд┐рдд Boost.Asio рдФрд░ OpenSSL рд▓рд╛рдЗрдмреНрд░реЗрд░реА
- рдмрд╛рдЗрдЯрд╣реИрдВрдб рд╕реЗрд╡рд╛ рдХреЗ рд╕рд╛рде рд╕реБрд░рдХреНрд╖рд┐рдд рдбреЗрдЯрд╛ рд╡рд┐рдирд┐рдордп рдХреЗ рд▓рд┐рдП рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдПрдХ рдкреНрд░рдорд╛рдг рдкрддреНрд░ред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдмрд╛рдЗрдЯрд╣реИрдВрдб рд╕реЗрд╡рд╛ рдкрд░ рдкрдВрдЬреАрдХрд░рдг рдХрд░реЗрдВред рдкрдВрдЬреАрдХрд░рдг рдПрдХ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдИ-рдореЗрд▓ рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рд╣реИред рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдкрдХрд╛ рдЦрд╛рддрд╛ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЦрд╛рддреЗ рдХреЛ рдкреБрди: рднрд░рддреЗ рд╕рдордп (рдХрдо рд╕реЗ рдХрдо 100 рд░реВрдмрд▓) рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реЗрдбрд░ рдПрд╕рдПрдордПрд╕-рдЗрдирдлреЛ рдХреЗ рд╕рд╛рде рд╕рдВрджреЗрд╢ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдзрд┐рдХрд╛рдВрд╢ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЛ рдкреНрд░рд╕реНрдерд╛рди рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ, рддреЛ рдЖрдк рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкрд╛рда рдЙрдкрдирд╛рдо рдХреЗ рд╕рд╛рде рдЖ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдЧрд▓рд╛ рд╣рдо рд╕рдВрд╕рд╛рдзрди рдПрдкреАрдЖрдИ рдореЗрдВ рдЪрдврд╝рддреЗ рд╣реИрдВред рдФрд░ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдПрд╕рдПрдордПрд╕ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдбреЗрдЯрд╛ рдкреИрдХреЗрдЯ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
POST /v2/sms/messages HTTP/1.1 Host: api.bytehand.com Connection: close Content-Length: * Content-Type: application/json;charset=UTF-8 X-Service-Key: ab4db0b982dcd0ba63e44191e5d71ef8 { "sender": "MyShop", "receiver": "+79167654321", "text": "Today only! 20% off for all goods!!" }
рдореИрдВ рдЗрд╕ рддрдереНрдп рдкрд░ рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ http рд╣реИрдбрд░ рдореЗрдВ X-Service-Key рд╕рдВрдкреВрд░реНрдг рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╣реИред рдЗрд╕ рдХреБрдВрдЬреА рдХреЛ "рд╕реБрд░рдХреНрд╖рд╛" рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд╕рд╛рдЗрдЯ рдкрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдФрд░ рдЖрдк c ++ рдореЗрдВ рдХрдВрд╕реЛрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдореЗрдВ рдПрдХ рдХреЛрдб рдХрд╛ рдЯреБрдХрдбрд╝рд╛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ Boost.Asio рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдиреЗрдХреНрд╢рди рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ https рдкреНрд░реЛрдЯреЛрдХреЙрд▓
рдХреЛрдб dh2048.pem рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреЗ рд╕рд╛рде рд░рдЦреЗрдВред
рдЖрдк рдпрд╣ рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣рд╛рдБ рдбреЛрдореЗрди рдирд╛рдо api.bytehand.com рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдХрд┐ рдХреИрд╕реЗ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП http рдЕрдиреБрд░реЛрдз рдХреЗ рд╣реЗрдбрд░ рдФрд░ рдмреЙрдбреА рдмрдирддреЗ рд╣реИрдВред
int main() {
рдореИрдВ рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдЕрдкрдиреА рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде X-Service-Key рдлрд╝реАрд▓реНрдб рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рдЗрд╕ рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдФрд░ рдпрджрд┐ рд╕рдм рдХреБрдЫ рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╕рд░реНрд╡рд░ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрддрд╛ рд╣реИ:
Status Code: 200 Content-Type: application/json;charset=UTF-8 Content-Language: en Cache-Control: no-cache, no-store, max-age=0, must-revalidate Pragma: no-cache { "result": "created", "count": 1 }
рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдЦрд╛рддреЗ рдореЗрдВ рдкреИрд╕рд╛ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдореИрд╕реЗрдЬ рдПрдбреНрд░реЗрд╕ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЗ рдкрд╛рд╕ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рд╡рд╣ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рдХрдВрдкрдиреА рдирдВрдмрд░ рдпрд╛ рдПрдХ рдкрд╛рда рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реЛрдЧрд╛ рдФрд░ рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рд╕рдордЭ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рдпрд╣ рд╕рдВрджреЗрд╢ рдХрд┐рд╕рд╕реЗ рдерд╛ред
рдЬрдм рдореИрдВрдиреЗ рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд░рдо рд▓рд┐рдЦрд╛ рддреЛ рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реБрдЖ:
рдпрд╣ рдЕрдирд╛рдбрд╝реА рдирд┐рдХрд▓рд╛, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реИред рд╕рднреА рдХреЛ рд╢реБрднрдХрд╛рдордирд╛рдПрдБ, рд╢рд╛рдпрдж рдЗрд╕ рд╡рд┐рд╖рдп рдиреЗ рдЖрдкрдХреА рдХреБрдЫ рдорджрдж рдХреАред
рдпрд╣ рдпрд╣рд╛рдБ рдореЗрд░рд╛ рджреВрд╕рд░рд╛ рд▓реЗрдЦ рдерд╛ред рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рд╕реМрднрд╛рдЧреНрдп рдЖрдкрдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рд╡рд┐рдХрд╛рд╕ред