├── .gitignore ├── LICENSE.txt ├── README.md ├── docs ├── annotated.html ├── annotated.js ├── bc_s.png ├── bdwn.png ├── classes.html ├── classqcloudsms__csharp_1_1_file_voice_sender-members.html ├── classqcloudsms__csharp_1_1_file_voice_sender.html ├── classqcloudsms__csharp_1_1_file_voice_sender.js ├── classqcloudsms__csharp_1_1_file_voice_sender.png ├── classqcloudsms__csharp_1_1_file_voice_sender_result-members.html ├── classqcloudsms__csharp_1_1_file_voice_sender_result.html ├── classqcloudsms__csharp_1_1_file_voice_sender_result.js ├── classqcloudsms__csharp_1_1_file_voice_sender_result.png ├── classqcloudsms__csharp_1_1_sms_base-members.html ├── classqcloudsms__csharp_1_1_sms_base.html ├── classqcloudsms__csharp_1_1_sms_base.js ├── classqcloudsms__csharp_1_1_sms_base.png ├── classqcloudsms__csharp_1_1_sms_mobile_status_puller-members.html ├── classqcloudsms__csharp_1_1_sms_mobile_status_puller.html ├── classqcloudsms__csharp_1_1_sms_mobile_status_puller.js ├── classqcloudsms__csharp_1_1_sms_mobile_status_puller.png ├── classqcloudsms__csharp_1_1_sms_multi_sender-members.html ├── classqcloudsms__csharp_1_1_sms_multi_sender.html ├── classqcloudsms__csharp_1_1_sms_multi_sender.js ├── classqcloudsms__csharp_1_1_sms_multi_sender.png ├── classqcloudsms__csharp_1_1_sms_multi_sender_result-members.html ├── classqcloudsms__csharp_1_1_sms_multi_sender_result.html ├── classqcloudsms__csharp_1_1_sms_multi_sender_result.js ├── classqcloudsms__csharp_1_1_sms_multi_sender_result.png ├── classqcloudsms__csharp_1_1_sms_multi_sender_result_1_1_detail-members.html ├── classqcloudsms__csharp_1_1_sms_multi_sender_result_1_1_detail.html ├── classqcloudsms__csharp_1_1_sms_multi_sender_result_1_1_detail.js ├── classqcloudsms__csharp_1_1_sms_result_base-members.html ├── classqcloudsms__csharp_1_1_sms_result_base.html ├── classqcloudsms__csharp_1_1_sms_result_base.js ├── classqcloudsms__csharp_1_1_sms_result_base.png ├── classqcloudsms__csharp_1_1_sms_single_sender-members.html ├── classqcloudsms__csharp_1_1_sms_single_sender.html ├── classqcloudsms__csharp_1_1_sms_single_sender.js ├── classqcloudsms__csharp_1_1_sms_single_sender.png ├── classqcloudsms__csharp_1_1_sms_single_sender_result-members.html ├── classqcloudsms__csharp_1_1_sms_single_sender_result.html ├── classqcloudsms__csharp_1_1_sms_single_sender_result.js ├── classqcloudsms__csharp_1_1_sms_single_sender_result.png ├── classqcloudsms__csharp_1_1_sms_status_pull_callback_result-members.html ├── classqcloudsms__csharp_1_1_sms_status_pull_callback_result.html ├── classqcloudsms__csharp_1_1_sms_status_pull_callback_result.js ├── classqcloudsms__csharp_1_1_sms_status_pull_callback_result.png ├── classqcloudsms__csharp_1_1_sms_status_pull_callback_result_1_1_callback-members.html ├── classqcloudsms__csharp_1_1_sms_status_pull_callback_result_1_1_callback.html ├── classqcloudsms__csharp_1_1_sms_status_pull_callback_result_1_1_callback.js ├── classqcloudsms__csharp_1_1_sms_status_pull_reply_result-members.html ├── classqcloudsms__csharp_1_1_sms_status_pull_reply_result.html ├── classqcloudsms__csharp_1_1_sms_status_pull_reply_result.js ├── classqcloudsms__csharp_1_1_sms_status_pull_reply_result.png ├── classqcloudsms__csharp_1_1_sms_status_pull_reply_result_1_1_reply-members.html ├── classqcloudsms__csharp_1_1_sms_status_pull_reply_result_1_1_reply.html ├── classqcloudsms__csharp_1_1_sms_status_pull_reply_result_1_1_reply.js ├── classqcloudsms__csharp_1_1_sms_status_puller-members.html ├── classqcloudsms__csharp_1_1_sms_status_puller.html ├── classqcloudsms__csharp_1_1_sms_status_puller.js ├── classqcloudsms__csharp_1_1_sms_status_puller.png ├── classqcloudsms__csharp_1_1_sms_voice_prompt_sender-members.html ├── classqcloudsms__csharp_1_1_sms_voice_prompt_sender.html ├── classqcloudsms__csharp_1_1_sms_voice_prompt_sender.js ├── classqcloudsms__csharp_1_1_sms_voice_prompt_sender.png ├── classqcloudsms__csharp_1_1_sms_voice_prompt_sender_result-members.html ├── classqcloudsms__csharp_1_1_sms_voice_prompt_sender_result.html ├── classqcloudsms__csharp_1_1_sms_voice_prompt_sender_result.js ├── classqcloudsms__csharp_1_1_sms_voice_prompt_sender_result.png ├── classqcloudsms__csharp_1_1_sms_voice_verify_code_sender-members.html ├── classqcloudsms__csharp_1_1_sms_voice_verify_code_sender.html ├── classqcloudsms__csharp_1_1_sms_voice_verify_code_sender.js ├── classqcloudsms__csharp_1_1_sms_voice_verify_code_sender.png ├── classqcloudsms__csharp_1_1_sms_voice_verify_code_sender_result-members.html ├── classqcloudsms__csharp_1_1_sms_voice_verify_code_sender_result.html ├── classqcloudsms__csharp_1_1_sms_voice_verify_code_sender_result.js ├── classqcloudsms__csharp_1_1_sms_voice_verify_code_sender_result.png ├── classqcloudsms__csharp_1_1_tts_voice_sender-members.html ├── classqcloudsms__csharp_1_1_tts_voice_sender.html ├── classqcloudsms__csharp_1_1_tts_voice_sender.js ├── classqcloudsms__csharp_1_1_tts_voice_sender.png ├── classqcloudsms__csharp_1_1_tts_voice_sender_result-members.html ├── classqcloudsms__csharp_1_1_tts_voice_sender_result.html ├── classqcloudsms__csharp_1_1_tts_voice_sender_result.js ├── classqcloudsms__csharp_1_1_tts_voice_sender_result.png ├── classqcloudsms__csharp_1_1_voice_file_uploader-members.html ├── classqcloudsms__csharp_1_1_voice_file_uploader.html ├── classqcloudsms__csharp_1_1_voice_file_uploader.js ├── classqcloudsms__csharp_1_1_voice_file_uploader.png ├── classqcloudsms__csharp_1_1_voice_file_uploader_result-members.html ├── classqcloudsms__csharp_1_1_voice_file_uploader_result.html ├── classqcloudsms__csharp_1_1_voice_file_uploader_result.js ├── classqcloudsms__csharp_1_1_voice_file_uploader_result.png ├── classqcloudsms__csharp_1_1httpclient_1_1_default_h_t_t_p_client-members.html ├── classqcloudsms__csharp_1_1httpclient_1_1_default_h_t_t_p_client.html ├── classqcloudsms__csharp_1_1httpclient_1_1_default_h_t_t_p_client.js ├── classqcloudsms__csharp_1_1httpclient_1_1_default_h_t_t_p_client.png ├── classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_exception-members.html ├── classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_exception.html ├── classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_exception.js ├── classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_exception.png ├── classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_request-members.html ├── classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_request.html ├── classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_request.js ├── classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_response-members.html ├── classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_response.html ├── classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_response.js ├── classqcloudsms__csharp_1_1httpclient_1_1_pooling_h_t_t_p_client-members.html ├── classqcloudsms__csharp_1_1httpclient_1_1_pooling_h_t_t_p_client.html ├── classqcloudsms__csharp_1_1httpclient_1_1_pooling_h_t_t_p_client.js ├── classqcloudsms__csharp_1_1httpclient_1_1_pooling_h_t_t_p_client.png ├── classqcloudsms__csharp_1_1json_1_1_j_s_o_n_array_builder-members.html ├── classqcloudsms__csharp_1_1json_1_1_j_s_o_n_array_builder.html ├── classqcloudsms__csharp_1_1json_1_1_j_s_o_n_array_builder.js ├── classqcloudsms__csharp_1_1json_1_1_j_s_o_n_exception-members.html ├── classqcloudsms__csharp_1_1json_1_1_j_s_o_n_exception.html ├── classqcloudsms__csharp_1_1json_1_1_j_s_o_n_exception.js ├── classqcloudsms__csharp_1_1json_1_1_j_s_o_n_exception.png ├── classqcloudsms__csharp_1_1json_1_1_j_s_o_n_object_builder-members.html ├── classqcloudsms__csharp_1_1json_1_1_j_s_o_n_object_builder.html ├── classqcloudsms__csharp_1_1json_1_1_j_s_o_n_object_builder.js ├── closed.png ├── dir_68267d1309a1af8e8297ef4c3efbcdba.html ├── dir_cc363f7f57394395bd88e148f34f9d1a.html ├── dir_da4c9dd239018fe26269ba2e1cf7c9a1.html ├── doxygen.css ├── doxygen.png ├── dynsections.js ├── ftv2blank.png ├── ftv2cl.png ├── ftv2doc.png ├── ftv2folderclosed.png ├── ftv2folderopen.png ├── ftv2lastnode.png ├── ftv2link.png ├── ftv2mlastnode.png ├── ftv2mnode.png ├── ftv2mo.png ├── ftv2node.png ├── ftv2ns.png ├── ftv2plastnode.png ├── ftv2pnode.png ├── ftv2splitbar.png ├── ftv2vertline.png ├── functions.html ├── functions_func.html ├── hierarchy.html ├── hierarchy.js ├── index.html ├── installdox ├── interfaceqcloudsms__csharp_1_1httpclient_1_1_i_h_t_t_p_client-members.html ├── interfaceqcloudsms__csharp_1_1httpclient_1_1_i_h_t_t_p_client.html ├── interfaceqcloudsms__csharp_1_1httpclient_1_1_i_h_t_t_p_client.js ├── interfaceqcloudsms__csharp_1_1httpclient_1_1_i_h_t_t_p_client.png ├── jquery.js ├── main.html ├── namespaceqcloudsms__csharp.html ├── namespaceqcloudsms__csharp.js ├── namespaceqcloudsms__csharp_1_1httpclient.html ├── namespaceqcloudsms__csharp_1_1httpclient.js ├── namespaceqcloudsms__csharp_1_1json.html ├── namespaceqcloudsms__csharp_1_1json.js ├── namespaces.html ├── namespaces.js ├── nav_f.png ├── nav_g.png ├── nav_h.png ├── navtree.css ├── navtree.js ├── navtreeindex0.js ├── open.png ├── resize.js ├── search │ ├── all_63.html │ ├── all_63.js │ ├── all_64.html │ ├── all_64.js │ ├── all_66.html │ ├── all_66.js │ ├── all_67.html │ ├── all_67.js │ ├── all_68.html │ ├── all_68.js │ ├── all_69.html │ ├── all_69.js │ ├── all_6a.html │ ├── all_6a.js │ ├── all_70.html │ ├── all_70.js │ ├── all_71.html │ ├── all_71.js │ ├── all_72.html │ ├── all_72.js │ ├── all_73.html │ ├── all_73.js │ ├── all_74.html │ ├── all_74.js │ ├── all_75.html │ ├── all_75.js │ ├── all_76.html │ ├── all_76.js │ ├── classes_63.html │ ├── classes_63.js │ ├── classes_64.html │ ├── classes_64.js │ ├── classes_66.html │ ├── classes_66.js │ ├── classes_68.html │ ├── classes_68.js │ ├── classes_69.html │ ├── classes_69.js │ ├── classes_6a.html │ ├── classes_6a.js │ ├── classes_70.html │ ├── classes_70.js │ ├── classes_72.html │ ├── classes_72.js │ ├── classes_73.html │ ├── classes_73.js │ ├── classes_74.html │ ├── classes_74.js │ ├── classes_76.html │ ├── classes_76.js │ ├── close.png │ ├── functions_67.html │ ├── functions_67.js │ ├── functions_68.html │ ├── functions_68.js │ ├── functions_70.html │ ├── functions_70.js │ ├── functions_73.html │ ├── functions_73.js │ ├── functions_75.html │ ├── functions_75.js │ ├── mag_sel.png │ ├── namespaces_71.html │ ├── namespaces_71.js │ ├── nomatches.html │ ├── search.css │ ├── search.js │ ├── search.png │ ├── search_l.png │ ├── search_m.png │ └── search_r.png ├── sync_off.png ├── sync_on.png ├── tab_a.png ├── tab_b.gif ├── tab_b.png ├── tab_h.png ├── tab_l.gif ├── tab_r.gif ├── tab_s.png ├── tabs.css └── tree.html ├── doxygen.conf ├── gendoc.sh ├── qcloudsms_csharp.csproj ├── qcloudsms_csharp.nuspec └── src ├── FileVoiceSender.cs ├── FileVoiceSenderResult.cs ├── SmsBase.cs ├── SmsMobileStatusPuller.cs ├── SmsMultiSender.cs ├── SmsMultiSenderResult.cs ├── SmsResultBase.cs ├── SmsSenderUtil.cs ├── SmsSingleSender.cs ├── SmsSingleSenderResult.cs ├── SmsStatusPullCallbackResult.cs ├── SmsStatusPullReplyResult.cs ├── SmsStatusPuller.cs ├── SmsVoicePromptSender.cs ├── SmsVoicePromptSenderResult.cs ├── SmsVoiceVerifyCodeSender.cs ├── SmsVoiceVerifyCodeSenderResult.cs ├── TtsVoiceSender.cs ├── TtsVoiceSenderResult.cs ├── VoiceFileUploader.cs ├── VoiceFileUploaderResult.cs ├── httpclient ├── DefaultHTTPClient.cs ├── HTTPException.cs ├── HTTPMethod.cs ├── HTTPRequest.cs ├── HTTPResponse.cs ├── IHTTPClient.cs └── PoolingHTTPClient.cs └── json ├── JSONException.cs └── JSONObject.cs /.gitignore: -------------------------------------------------------------------------------- 1 | [Bb]in/ 2 | [Oo]bj/ 3 | Build/ 4 | .vs/ 5 | *.lock.json 6 | *.nuget.props 7 | *.nuget.targets 8 | *.orig 9 | .vscode 10 | .DS_Store 11 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 qcloudsms 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /docs/annotated.js: -------------------------------------------------------------------------------- 1 | var annotated = 2 | [ 3 | [ "qcloudsms_csharp", "namespaceqcloudsms__csharp.html", "namespaceqcloudsms__csharp" ] 4 | ]; -------------------------------------------------------------------------------- /docs/bc_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/bc_s.png -------------------------------------------------------------------------------- /docs/bdwn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/bdwn.png -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_file_voice_sender.js: -------------------------------------------------------------------------------- 1 | var classqcloudsms__csharp_1_1_file_voice_sender = 2 | [ 3 | [ "FileVoiceSender", "classqcloudsms__csharp_1_1_file_voice_sender.html#a3ca961b788356e3e3d0a09b46f8856f9", null ], 4 | [ "FileVoiceSender", "classqcloudsms__csharp_1_1_file_voice_sender.html#a1ab4d5e79123ec55306c4cdde62cc5cf", null ], 5 | [ "send", "classqcloudsms__csharp_1_1_file_voice_sender.html#a1a595bf3942356bef59a4f3f60f36365", null ] 6 | ]; -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_file_voice_sender.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/classqcloudsms__csharp_1_1_file_voice_sender.png -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_file_voice_sender_result.js: -------------------------------------------------------------------------------- 1 | var classqcloudsms__csharp_1_1_file_voice_sender_result = 2 | [ 3 | [ "FileVoiceSenderResult", "classqcloudsms__csharp_1_1_file_voice_sender_result.html#a6014fc239b4ca57add0044608bcda867", null ], 4 | [ "parseFromHTTPResponse", "classqcloudsms__csharp_1_1_file_voice_sender_result.html#acd9426edc2779dfb2307d663220694e5", null ], 5 | [ "callid", "classqcloudsms__csharp_1_1_file_voice_sender_result.html#a7db0fa243e2c95c63856e5fc57fd6a64", null ], 6 | [ "errMsg", "classqcloudsms__csharp_1_1_file_voice_sender_result.html#ad67f499605ca800c82726560ebacaf7d", null ], 7 | [ "ext", "classqcloudsms__csharp_1_1_file_voice_sender_result.html#ada1544117b76fd14d0464d405801d2f3", null ], 8 | [ "result", "classqcloudsms__csharp_1_1_file_voice_sender_result.html#adeb8b2aa2f25a0c2e596cfc7cf1db0ca", null ] 9 | ]; -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_file_voice_sender_result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/classqcloudsms__csharp_1_1_file_voice_sender_result.png -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_sms_base.js: -------------------------------------------------------------------------------- 1 | var classqcloudsms__csharp_1_1_sms_base = 2 | [ 3 | [ "SmsBase", "classqcloudsms__csharp_1_1_sms_base.html#a3b66561378d37618c7a99a914ca27cbe", null ], 4 | [ "handleError", "classqcloudsms__csharp_1_1_sms_base.html#a4429d661fb8b3a029a96b9cb45cd13d9", null ], 5 | [ "appid", "classqcloudsms__csharp_1_1_sms_base.html#aa4c8157d0fc07a15edb0f07069fdb405", null ], 6 | [ "appkey", "classqcloudsms__csharp_1_1_sms_base.html#aca4af3764247ad218b3012cdf51083d6", null ], 7 | [ "httpclient", "classqcloudsms__csharp_1_1_sms_base.html#addee9300ba6a46b50546220f3d61b479", null ] 8 | ]; -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_sms_base.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/classqcloudsms__csharp_1_1_sms_base.png -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_sms_mobile_status_puller.js: -------------------------------------------------------------------------------- 1 | var classqcloudsms__csharp_1_1_sms_mobile_status_puller = 2 | [ 3 | [ "SmsMobileStatusPuller", "classqcloudsms__csharp_1_1_sms_mobile_status_puller.html#a882430ef519cbdf19ffb0096c318b9b6", null ], 4 | [ "SmsMobileStatusPuller", "classqcloudsms__csharp_1_1_sms_mobile_status_puller.html#a63f229e41a8f8dd203563c40d2505b11", null ], 5 | [ "pullCallback", "classqcloudsms__csharp_1_1_sms_mobile_status_puller.html#a31e3ea54bca7a25496b7a1108bea5c72", null ], 6 | [ "pullReply", "classqcloudsms__csharp_1_1_sms_mobile_status_puller.html#a01432512d23a8dcbd0d30a90c51d3bc6", null ] 7 | ]; -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_sms_mobile_status_puller.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/classqcloudsms__csharp_1_1_sms_mobile_status_puller.png -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_sms_multi_sender.js: -------------------------------------------------------------------------------- 1 | var classqcloudsms__csharp_1_1_sms_multi_sender = 2 | [ 3 | [ "SmsMultiSender", "classqcloudsms__csharp_1_1_sms_multi_sender.html#a67468221801c3d5dd7303a7847f59c60", null ], 4 | [ "SmsMultiSender", "classqcloudsms__csharp_1_1_sms_multi_sender.html#a9cee5e22bd30759c8dfe6241dd1ca81d", null ], 5 | [ "send", "classqcloudsms__csharp_1_1_sms_multi_sender.html#a804ff6499a68488a468edbe7b3bd9892", null ], 6 | [ "send", "classqcloudsms__csharp_1_1_sms_multi_sender.html#a59178a59908cec9d99350809bdcc34b6", null ], 7 | [ "sendWithParam", "classqcloudsms__csharp_1_1_sms_multi_sender.html#a784ed4935818efbc52c699440964ffde", null ], 8 | [ "sendWithParam", "classqcloudsms__csharp_1_1_sms_multi_sender.html#a49c7bcf9d67d4bb20cae30781c23fb99", null ] 9 | ]; -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_sms_multi_sender.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/classqcloudsms__csharp_1_1_sms_multi_sender.png -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_sms_multi_sender_result.js: -------------------------------------------------------------------------------- 1 | var classqcloudsms__csharp_1_1_sms_multi_sender_result = 2 | [ 3 | [ "Detail", "classqcloudsms__csharp_1_1_sms_multi_sender_result_1_1_detail.html", "classqcloudsms__csharp_1_1_sms_multi_sender_result_1_1_detail" ], 4 | [ "SmsMultiSenderResult", "classqcloudsms__csharp_1_1_sms_multi_sender_result.html#a17d2f95bf9f8709393544260ad82ab67", null ], 5 | [ "parseFromHTTPResponse", "classqcloudsms__csharp_1_1_sms_multi_sender_result.html#a649f621be3634acd6cafbba9fe9564e0", null ], 6 | [ "details", "classqcloudsms__csharp_1_1_sms_multi_sender_result.html#a356edb140f9b6bce6da7dd9dfdda68fa", null ], 7 | [ "errMsg", "classqcloudsms__csharp_1_1_sms_multi_sender_result.html#a46f8bd75ec7986a6098aabda342635d4", null ], 8 | [ "ext", "classqcloudsms__csharp_1_1_sms_multi_sender_result.html#a9499a8751d7b52253f2258f05d092c0f", null ], 9 | [ "result", "classqcloudsms__csharp_1_1_sms_multi_sender_result.html#a4675922326d5a605bf206aca4f63ea9a", null ] 10 | ]; -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_sms_multi_sender_result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/classqcloudsms__csharp_1_1_sms_multi_sender_result.png -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_sms_multi_sender_result_1_1_detail.js: -------------------------------------------------------------------------------- 1 | var classqcloudsms__csharp_1_1_sms_multi_sender_result_1_1_detail = 2 | [ 3 | [ "parse", "classqcloudsms__csharp_1_1_sms_multi_sender_result_1_1_detail.html#a14db6cb9c8838446b4d266e53dc99b02", null ], 4 | [ "ToString", "classqcloudsms__csharp_1_1_sms_multi_sender_result_1_1_detail.html#a3c2c76db48847f2417a8df415aa7d522", null ], 5 | [ "errmsg", "classqcloudsms__csharp_1_1_sms_multi_sender_result_1_1_detail.html#a228eefd0f51a9fbe6542e46f4ee6e4cc", null ], 6 | [ "fee", "classqcloudsms__csharp_1_1_sms_multi_sender_result_1_1_detail.html#afe2af35d228fb9ad0cc1d225939d69d8", null ], 7 | [ "mobile", "classqcloudsms__csharp_1_1_sms_multi_sender_result_1_1_detail.html#a04c947d294da05ebbc3d1e3a644d922e", null ], 8 | [ "nationcode", "classqcloudsms__csharp_1_1_sms_multi_sender_result_1_1_detail.html#a250a8d8313a06ee02cef635277b3c245", null ], 9 | [ "result", "classqcloudsms__csharp_1_1_sms_multi_sender_result_1_1_detail.html#a441d34fa7a4619f802a0bd452d225a33", null ], 10 | [ "sid", "classqcloudsms__csharp_1_1_sms_multi_sender_result_1_1_detail.html#a9da078d4a9c5929a9cbb4b68a99efba0", null ] 11 | ]; -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_sms_result_base.js: -------------------------------------------------------------------------------- 1 | var classqcloudsms__csharp_1_1_sms_result_base = 2 | [ 3 | [ "getResponse", "classqcloudsms__csharp_1_1_sms_result_base.html#ad815a42e08a2d0040a916c3100d33f18", null ], 4 | [ "parseFromHTTPResponse", "classqcloudsms__csharp_1_1_sms_result_base.html#a547e8f85b93d11c74cf6056e561b8255", null ], 5 | [ "parseToJson", "classqcloudsms__csharp_1_1_sms_result_base.html#a5936f24aee00b69a7f462ce131620f7d", null ], 6 | [ "ToString", "classqcloudsms__csharp_1_1_sms_result_base.html#afc7ba3fd7458b0968fad1424a571f253", null ], 7 | [ "response", "classqcloudsms__csharp_1_1_sms_result_base.html#adc8fe10c72bcf7f36b352984393b6d8b", null ] 8 | ]; -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_sms_result_base.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/classqcloudsms__csharp_1_1_sms_result_base.png -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_sms_single_sender.js: -------------------------------------------------------------------------------- 1 | var classqcloudsms__csharp_1_1_sms_single_sender = 2 | [ 3 | [ "SmsSingleSender", "classqcloudsms__csharp_1_1_sms_single_sender.html#a9bf83fa3b1324222e689aeba2047e48b", null ], 4 | [ "SmsSingleSender", "classqcloudsms__csharp_1_1_sms_single_sender.html#aff1f1b6495da28bac48d69c28a6e8beb", null ], 5 | [ "send", "classqcloudsms__csharp_1_1_sms_single_sender.html#a78fe589301a98304d800f5ca58941bf1", null ], 6 | [ "sendWithParam", "classqcloudsms__csharp_1_1_sms_single_sender.html#a647e118ab72bd7de3d3f46d538b580ab", null ] 7 | ]; -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_sms_single_sender.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/classqcloudsms__csharp_1_1_sms_single_sender.png -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_sms_single_sender_result.js: -------------------------------------------------------------------------------- 1 | var classqcloudsms__csharp_1_1_sms_single_sender_result = 2 | [ 3 | [ "SmsSingleSenderResult", "classqcloudsms__csharp_1_1_sms_single_sender_result.html#a4d178558fe28b7a534d5539146270fb2", null ], 4 | [ "parseFromHTTPResponse", "classqcloudsms__csharp_1_1_sms_single_sender_result.html#a017852f3e7f3768dc11b5888d702ca88", null ], 5 | [ "errMsg", "classqcloudsms__csharp_1_1_sms_single_sender_result.html#a309625a1f88911adc5589194306ed32e", null ], 6 | [ "ext", "classqcloudsms__csharp_1_1_sms_single_sender_result.html#ad8e02c255c461c8b383bc6d197b86a25", null ], 7 | [ "fee", "classqcloudsms__csharp_1_1_sms_single_sender_result.html#aa2d692b6b9c814946780c70c52dc5c79", null ], 8 | [ "result", "classqcloudsms__csharp_1_1_sms_single_sender_result.html#a7e8007d18fd390b6b2c68f1e342eb8ac", null ], 9 | [ "sid", "classqcloudsms__csharp_1_1_sms_single_sender_result.html#afad130ebf6251c06d9927609775d5767", null ] 10 | ]; -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_sms_single_sender_result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/classqcloudsms__csharp_1_1_sms_single_sender_result.png -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_sms_status_pull_callback_result.js: -------------------------------------------------------------------------------- 1 | var classqcloudsms__csharp_1_1_sms_status_pull_callback_result = 2 | [ 3 | [ "Callback", "classqcloudsms__csharp_1_1_sms_status_pull_callback_result_1_1_callback.html", "classqcloudsms__csharp_1_1_sms_status_pull_callback_result_1_1_callback" ], 4 | [ "SmsStatusPullCallbackResult", "classqcloudsms__csharp_1_1_sms_status_pull_callback_result.html#aedb50717bc0b15fb90cb58259824bc7f", null ], 5 | [ "parseFromHTTPResponse", "classqcloudsms__csharp_1_1_sms_status_pull_callback_result.html#aa0b985a9043e578db2fa2188d52b1d45", null ], 6 | [ "callbacks", "classqcloudsms__csharp_1_1_sms_status_pull_callback_result.html#a52c123e2345fea495125cf72ea68721f", null ], 7 | [ "count", "classqcloudsms__csharp_1_1_sms_status_pull_callback_result.html#ad373553e80efa4d5e187a1bd8d673119", null ], 8 | [ "errMsg", "classqcloudsms__csharp_1_1_sms_status_pull_callback_result.html#ace879aa11c264f5982a020f496d5ea32", null ], 9 | [ "result", "classqcloudsms__csharp_1_1_sms_status_pull_callback_result.html#a1b0377cc916c80bb90eb19c71a8805ed", null ] 10 | ]; -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_sms_status_pull_callback_result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/classqcloudsms__csharp_1_1_sms_status_pull_callback_result.png -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_sms_status_pull_callback_result_1_1_callback.js: -------------------------------------------------------------------------------- 1 | var classqcloudsms__csharp_1_1_sms_status_pull_callback_result_1_1_callback = 2 | [ 3 | [ "parse", "classqcloudsms__csharp_1_1_sms_status_pull_callback_result_1_1_callback.html#a608f454d25333afe02dcfcbf273e0169", null ], 4 | [ "ToString", "classqcloudsms__csharp_1_1_sms_status_pull_callback_result_1_1_callback.html#a9755ae4245c9f5dea7bd218471d89b17", null ], 5 | [ "description", "classqcloudsms__csharp_1_1_sms_status_pull_callback_result_1_1_callback.html#aebf0ccbc0dd41bbefee2c52abdc01808", null ], 6 | [ "errmsg", "classqcloudsms__csharp_1_1_sms_status_pull_callback_result_1_1_callback.html#aa7b7080ce22cdeb054f49a12824174eb", null ], 7 | [ "mobile", "classqcloudsms__csharp_1_1_sms_status_pull_callback_result_1_1_callback.html#a7fee8d1c3be7f5318819aec8dabdc13a", null ], 8 | [ "nationcode", "classqcloudsms__csharp_1_1_sms_status_pull_callback_result_1_1_callback.html#acb28a3eee78fb6faa61dc05761600780", null ], 9 | [ "report_status", "classqcloudsms__csharp_1_1_sms_status_pull_callback_result_1_1_callback.html#a1a322309a0b704bf6831f6e690796a31", null ], 10 | [ "sid", "classqcloudsms__csharp_1_1_sms_status_pull_callback_result_1_1_callback.html#ac5baf9d40d9efbc3c9ee5589fbcb65b1", null ], 11 | [ "user_receive_time", "classqcloudsms__csharp_1_1_sms_status_pull_callback_result_1_1_callback.html#ad61bbecc46856ca580771809ab5b1110", null ] 12 | ]; -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_sms_status_pull_reply_result.js: -------------------------------------------------------------------------------- 1 | var classqcloudsms__csharp_1_1_sms_status_pull_reply_result = 2 | [ 3 | [ "Reply", "classqcloudsms__csharp_1_1_sms_status_pull_reply_result_1_1_reply.html", "classqcloudsms__csharp_1_1_sms_status_pull_reply_result_1_1_reply" ], 4 | [ "SmsStatusPullReplyResult", "classqcloudsms__csharp_1_1_sms_status_pull_reply_result.html#a122f6181bfdb89aea38fbece22059135", null ], 5 | [ "parseFromHTTPResponse", "classqcloudsms__csharp_1_1_sms_status_pull_reply_result.html#a09d112933d2b97ebc65ccbfde5e0a20b", null ], 6 | [ "count", "classqcloudsms__csharp_1_1_sms_status_pull_reply_result.html#a34049b40a49560e233fe8816a6f9c6ba", null ], 7 | [ "errMsg", "classqcloudsms__csharp_1_1_sms_status_pull_reply_result.html#a7ce21cf0b89c201a5c31ab25d5b36317", null ], 8 | [ "replys", "classqcloudsms__csharp_1_1_sms_status_pull_reply_result.html#afb05364b3750327d24562b4cb322cf32", null ], 9 | [ "result", "classqcloudsms__csharp_1_1_sms_status_pull_reply_result.html#a7a55e8b9598ea197399f92c45ae4cfaa", null ] 10 | ]; -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_sms_status_pull_reply_result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/classqcloudsms__csharp_1_1_sms_status_pull_reply_result.png -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_sms_status_pull_reply_result_1_1_reply.js: -------------------------------------------------------------------------------- 1 | var classqcloudsms__csharp_1_1_sms_status_pull_reply_result_1_1_reply = 2 | [ 3 | [ "parse", "classqcloudsms__csharp_1_1_sms_status_pull_reply_result_1_1_reply.html#ad7769c09ffa831138cd5387dbc0a3b9f", null ], 4 | [ "ToString", "classqcloudsms__csharp_1_1_sms_status_pull_reply_result_1_1_reply.html#a37926afa6bc6679ad981f15a04c2367a", null ], 5 | [ "extend", "classqcloudsms__csharp_1_1_sms_status_pull_reply_result_1_1_reply.html#a961e54ebdd09a7e61cebcc02c2e98856", null ], 6 | [ "mobile", "classqcloudsms__csharp_1_1_sms_status_pull_reply_result_1_1_reply.html#a6c3b707b4287743062f4df88e67b76b8", null ], 7 | [ "nationcode", "classqcloudsms__csharp_1_1_sms_status_pull_reply_result_1_1_reply.html#ab6c71bfdd6bd48a6adea4d2562dfab6f", null ], 8 | [ "sign", "classqcloudsms__csharp_1_1_sms_status_pull_reply_result_1_1_reply.html#ab20b488cfeb1817e569d72affa7f8c9b", null ], 9 | [ "text", "classqcloudsms__csharp_1_1_sms_status_pull_reply_result_1_1_reply.html#ac15de8e098a62fc18cf0492cbe701e79", null ], 10 | [ "time", "classqcloudsms__csharp_1_1_sms_status_pull_reply_result_1_1_reply.html#a34bf64e687ff42433aa72ed87460fbd2", null ] 11 | ]; -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_sms_status_puller.js: -------------------------------------------------------------------------------- 1 | var classqcloudsms__csharp_1_1_sms_status_puller = 2 | [ 3 | [ "SmsStatusPuller", "classqcloudsms__csharp_1_1_sms_status_puller.html#a87a931cf10b1da43aec90e4f1e5879e5", null ], 4 | [ "SmsStatusPuller", "classqcloudsms__csharp_1_1_sms_status_puller.html#a67a437cfda6d68387ee161994bd39aa6", null ], 5 | [ "pullCallback", "classqcloudsms__csharp_1_1_sms_status_puller.html#a48530deaa1a8c6583998b91ca863cd3d", null ], 6 | [ "pullReply", "classqcloudsms__csharp_1_1_sms_status_puller.html#aa8e8b72b82f11d302ab976d7da5e2861", null ] 7 | ]; -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_sms_status_puller.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/classqcloudsms__csharp_1_1_sms_status_puller.png -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_sms_voice_prompt_sender.js: -------------------------------------------------------------------------------- 1 | var classqcloudsms__csharp_1_1_sms_voice_prompt_sender = 2 | [ 3 | [ "SmsVoicePromptSender", "classqcloudsms__csharp_1_1_sms_voice_prompt_sender.html#a8a695ed096ac6f1609f1f55ded9458b7", null ], 4 | [ "SmsVoicePromptSender", "classqcloudsms__csharp_1_1_sms_voice_prompt_sender.html#a280d24b3df11c706b42e7880eb311ab8", null ], 5 | [ "send", "classqcloudsms__csharp_1_1_sms_voice_prompt_sender.html#aa244a712782437caea9b0325d83cf8bf", null ] 6 | ]; -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_sms_voice_prompt_sender.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/classqcloudsms__csharp_1_1_sms_voice_prompt_sender.png -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_sms_voice_prompt_sender_result.js: -------------------------------------------------------------------------------- 1 | var classqcloudsms__csharp_1_1_sms_voice_prompt_sender_result = 2 | [ 3 | [ "SmsVoicePromptSenderResult", "classqcloudsms__csharp_1_1_sms_voice_prompt_sender_result.html#a3dfbb0b51b779202d5a6403006415837", null ], 4 | [ "parseFromHTTPResponse", "classqcloudsms__csharp_1_1_sms_voice_prompt_sender_result.html#a10825b6de39a071c5a27b2a5c6eebb4b", null ], 5 | [ "callid", "classqcloudsms__csharp_1_1_sms_voice_prompt_sender_result.html#a2b8aeeb225f466f6fa98ffa84f7b31fa", null ], 6 | [ "errMsg", "classqcloudsms__csharp_1_1_sms_voice_prompt_sender_result.html#a83e45a7ed9110251aff2b0dca79321a7", null ], 7 | [ "ext", "classqcloudsms__csharp_1_1_sms_voice_prompt_sender_result.html#ab4ef903df44b3512c66ae1fbcb153f08", null ], 8 | [ "result", "classqcloudsms__csharp_1_1_sms_voice_prompt_sender_result.html#aeeecadff52a4c9a9a8dfc3937f06cfc3", null ] 9 | ]; -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_sms_voice_prompt_sender_result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/classqcloudsms__csharp_1_1_sms_voice_prompt_sender_result.png -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_sms_voice_verify_code_sender.js: -------------------------------------------------------------------------------- 1 | var classqcloudsms__csharp_1_1_sms_voice_verify_code_sender = 2 | [ 3 | [ "SmsVoiceVerifyCodeSender", "classqcloudsms__csharp_1_1_sms_voice_verify_code_sender.html#a2248d41d734142a52c909a45a72c3553", null ], 4 | [ "SmsVoiceVerifyCodeSender", "classqcloudsms__csharp_1_1_sms_voice_verify_code_sender.html#a33d072bb019ace3a8d6f0b6e01ee2ff3", null ], 5 | [ "send", "classqcloudsms__csharp_1_1_sms_voice_verify_code_sender.html#a991e696ba1fcd6be4a4f327b6aacb59d", null ] 6 | ]; -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_sms_voice_verify_code_sender.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/classqcloudsms__csharp_1_1_sms_voice_verify_code_sender.png -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_sms_voice_verify_code_sender_result.js: -------------------------------------------------------------------------------- 1 | var classqcloudsms__csharp_1_1_sms_voice_verify_code_sender_result = 2 | [ 3 | [ "SmsVoiceVerifyCodeSenderResult", "classqcloudsms__csharp_1_1_sms_voice_verify_code_sender_result.html#af308851c177145b91a28c92e1c3095dc", null ], 4 | [ "parseFromHTTPResponse", "classqcloudsms__csharp_1_1_sms_voice_verify_code_sender_result.html#a362587b86ba8aea8728eabdac503f385", null ], 5 | [ "callid", "classqcloudsms__csharp_1_1_sms_voice_verify_code_sender_result.html#a610edf89b63d981dc13bf4f11439919b", null ], 6 | [ "errMsg", "classqcloudsms__csharp_1_1_sms_voice_verify_code_sender_result.html#aec8575d478453d622d9d7ff1f513c851", null ], 7 | [ "ext", "classqcloudsms__csharp_1_1_sms_voice_verify_code_sender_result.html#a7158fb3ae1043ce5d55a5c9760c12c29", null ], 8 | [ "result", "classqcloudsms__csharp_1_1_sms_voice_verify_code_sender_result.html#a45fad0cf99108c98225795d547b1d3f7", null ] 9 | ]; -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_sms_voice_verify_code_sender_result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/classqcloudsms__csharp_1_1_sms_voice_verify_code_sender_result.png -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_tts_voice_sender.js: -------------------------------------------------------------------------------- 1 | var classqcloudsms__csharp_1_1_tts_voice_sender = 2 | [ 3 | [ "TtsVoiceSender", "classqcloudsms__csharp_1_1_tts_voice_sender.html#aeb7ac50adf81a3a77873b9ca6a8641af", null ], 4 | [ "TtsVoiceSender", "classqcloudsms__csharp_1_1_tts_voice_sender.html#a2425a439ded9a236d875edd60e4b1c06", null ], 5 | [ "send", "classqcloudsms__csharp_1_1_tts_voice_sender.html#acf9863ffcae675eec1fe12ac4ed516d2", null ] 6 | ]; -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_tts_voice_sender.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/classqcloudsms__csharp_1_1_tts_voice_sender.png -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_tts_voice_sender_result.js: -------------------------------------------------------------------------------- 1 | var classqcloudsms__csharp_1_1_tts_voice_sender_result = 2 | [ 3 | [ "TtsVoiceSenderResult", "classqcloudsms__csharp_1_1_tts_voice_sender_result.html#a16489c5ec054cceb395eaa16defc402e", null ], 4 | [ "parseFromHTTPResponse", "classqcloudsms__csharp_1_1_tts_voice_sender_result.html#afc6ace2efa12fde819657dba4142c40f", null ], 5 | [ "callid", "classqcloudsms__csharp_1_1_tts_voice_sender_result.html#a5c2233a66d734479a76745d0497857c0", null ], 6 | [ "errMsg", "classqcloudsms__csharp_1_1_tts_voice_sender_result.html#a15a37ea2159edbb50189db394e6364cd", null ], 7 | [ "ext", "classqcloudsms__csharp_1_1_tts_voice_sender_result.html#a177ba3c99caf6218b053948c35a1aa75", null ], 8 | [ "result", "classqcloudsms__csharp_1_1_tts_voice_sender_result.html#a30ccd723420a225b80e267821d3fdb68", null ] 9 | ]; -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_tts_voice_sender_result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/classqcloudsms__csharp_1_1_tts_voice_sender_result.png -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_voice_file_uploader.js: -------------------------------------------------------------------------------- 1 | var classqcloudsms__csharp_1_1_voice_file_uploader = 2 | [ 3 | [ "ContentType", "classqcloudsms__csharp_1_1_voice_file_uploader.html#a237110ec854892426c0f2fac6441cdbd", [ 4 | [ "WAV", "classqcloudsms__csharp_1_1_voice_file_uploader.html#a237110ec854892426c0f2fac6441cdbda76bae86742a2ec93bb56ae064ce7bd54", null ], 5 | [ "MP3", "classqcloudsms__csharp_1_1_voice_file_uploader.html#a237110ec854892426c0f2fac6441cdbda27bcd310c52f6445cf4b93b90f52f5ef", null ] 6 | ] ], 7 | [ "VoiceFileUploader", "classqcloudsms__csharp_1_1_voice_file_uploader.html#a09513fcf585857ac6633b6c764d102a4", null ], 8 | [ "VoiceFileUploader", "classqcloudsms__csharp_1_1_voice_file_uploader.html#ab05004adebd13c066bb90d25cd2bac96", null ], 9 | [ "upload", "classqcloudsms__csharp_1_1_voice_file_uploader.html#a7d96eef54e4bc2576fcf88b473f04693", null ] 10 | ]; -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_voice_file_uploader.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/classqcloudsms__csharp_1_1_voice_file_uploader.png -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_voice_file_uploader_result.js: -------------------------------------------------------------------------------- 1 | var classqcloudsms__csharp_1_1_voice_file_uploader_result = 2 | [ 3 | [ "VoiceFileUploaderResult", "classqcloudsms__csharp_1_1_voice_file_uploader_result.html#ac97a4b3d660a77b215bf88be05dd5a96", null ], 4 | [ "parseFromHTTPResponse", "classqcloudsms__csharp_1_1_voice_file_uploader_result.html#a3e56b8698282083d851324bbad929c74", null ], 5 | [ "errMsg", "classqcloudsms__csharp_1_1_voice_file_uploader_result.html#a32932676e34d58d70fba5045b2324810", null ], 6 | [ "fid", "classqcloudsms__csharp_1_1_voice_file_uploader_result.html#acc9b65edc2fe9b7a2d6ec00c5ce6cd15", null ], 7 | [ "result", "classqcloudsms__csharp_1_1_voice_file_uploader_result.html#ad291b7d0833179abd9305440fa9b839a", null ] 8 | ]; -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1_voice_file_uploader_result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/classqcloudsms__csharp_1_1_voice_file_uploader_result.png -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1httpclient_1_1_default_h_t_t_p_client.js: -------------------------------------------------------------------------------- 1 | var classqcloudsms__csharp_1_1httpclient_1_1_default_h_t_t_p_client = 2 | [ 3 | [ "close", "classqcloudsms__csharp_1_1httpclient_1_1_default_h_t_t_p_client.html#a41b8b3130c2bcb0ca1df71672f72122f", null ], 4 | [ "fetch", "classqcloudsms__csharp_1_1httpclient_1_1_default_h_t_t_p_client.html#aff9f2dab1dab5413f0031a22efc2278e", null ] 5 | ]; -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1httpclient_1_1_default_h_t_t_p_client.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/classqcloudsms__csharp_1_1httpclient_1_1_default_h_t_t_p_client.png -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_exception.js: -------------------------------------------------------------------------------- 1 | var classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_exception = 2 | [ 3 | [ "HTTPException", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_exception.html#a014b043fbe7644c09c724c8372829d7f", null ], 4 | [ "getReason", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_exception.html#a30582e53a2a45c4df4398260fa0319a4", null ], 5 | [ "getStatusCode", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_exception.html#a2d060692add49a459a77f936922a1670", null ], 6 | [ "ToString", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_exception.html#a39c85a7a582166538b5730ef25d1eb9b", null ] 7 | ]; -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_exception.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_exception.png -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_request.js: -------------------------------------------------------------------------------- 1 | var classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_request = 2 | [ 3 | [ "HTTPRequest", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_request.html#ad025a6fe55991c986c64f84166ac1eaf", null ], 4 | [ "addHeader", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_request.html#a85d900a766192884575fd030cae5b9e0", null ], 5 | [ "addQueryParameter", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_request.html#a9ca5ac21eb683049de6edf41bd487a8e", null ], 6 | [ "addQueryParameter", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_request.html#a5b15b7b953df14083c29d670d8ab9ed0", null ], 7 | [ "addQueryParameter", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_request.html#a4d826707a1ea93a002bc76a6ca44c74f", null ], 8 | [ "setBody", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_request.html#a637579c57de5ee03240287458a746c65", null ], 9 | [ "setBodyEncoding", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_request.html#a75976030d2c77a9f0876043bcbb47d7d", null ], 10 | [ "setConnectionTimeout", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_request.html#a17a864bc7fa11ab58ce4de565d6d221c", null ], 11 | [ "setRequestTimeout", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_request.html#a7937df7f0c628e3aacc4c378ada069f3", null ], 12 | [ "ToString", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_request.html#adecb5795db625ecca9b77e9f7168c161", null ], 13 | [ "body", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_request.html#a20f1b33c1ecb9d8693da5e81fce70c0d", null ], 14 | [ "bodyEncoding", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_request.html#a6215d536b91dfef19e3554fdd05e60f2", null ], 15 | [ "connectTimeout", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_request.html#a83b0f825c8ff95ebaed8ba7d44970bbc", null ], 16 | [ "headers", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_request.html#acbf1d0b1f6ee07febd93914272abd80e", null ], 17 | [ "parameters", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_request.html#a9230cd5db7379fcc5c55f45ffa7e9b3b", null ], 18 | [ "requestTimeout", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_request.html#aad49baf04b2738a0c7f309a7c23d9668", null ], 19 | [ "method", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_request.html#a2b201c474efa28fbe56c0b017233e564", null ], 20 | [ "url", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_request.html#a87718848816b6ca37e8d36141e672368", null ] 21 | ]; -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_response.js: -------------------------------------------------------------------------------- 1 | var classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_response = 2 | [ 3 | [ "HTTPResponse", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_response.html#aa5f2eda97282eeea39cfbca00063f03c", null ], 4 | [ "HTTPResponse", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_response.html#aaea7201f4ec18132c4ccaa7d75869529", null ], 5 | [ "HTTPResponse", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_response.html#a3342de4c786ea8d7adcec36ade492bd1", null ], 6 | [ "HTTPResponse", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_response.html#a0b575c9c8a60dea1028e73d37dba5baa", null ], 7 | [ "addHeader", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_response.html#aaac1dffdb08aeefcb466313f2db8ed2e", null ], 8 | [ "setBody", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_response.html#a01fa30fab827d3f7b3c65b597c4912d4", null ], 9 | [ "setReason", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_response.html#a71f1ed7cda42c4895062434d7848fb0b", null ], 10 | [ "setRequest", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_response.html#af8fd6ae9388ebf22557531aa423e9f1b", null ], 11 | [ "setStatusCode", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_response.html#a61a024cd99997a0b4695100525c269a9", null ], 12 | [ "body", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_response.html#abf5ce101d66a94536315ac6fe9ec1948", null ], 13 | [ "headers", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_response.html#a8dbcfdc6ea59ca059406efbfdf555a9c", null ], 14 | [ "reason", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_response.html#a398843a56d1108cd9a67258975f1549d", null ], 15 | [ "request", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_response.html#af16a22393b972387376e401a53d4979e", null ], 16 | [ "statusCode", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_response.html#a60055ef46fe8955a90ae11325ce46702", null ] 17 | ]; -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1httpclient_1_1_pooling_h_t_t_p_client.js: -------------------------------------------------------------------------------- 1 | var classqcloudsms__csharp_1_1httpclient_1_1_pooling_h_t_t_p_client = 2 | [ 3 | [ "close", "classqcloudsms__csharp_1_1httpclient_1_1_pooling_h_t_t_p_client.html#ab98cdfecbbe978505f7dd2ff5d0d758d", null ], 4 | [ "fetch", "classqcloudsms__csharp_1_1httpclient_1_1_pooling_h_t_t_p_client.html#afff20549df71a1806ea99a84ec9a5950", null ] 5 | ]; -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1httpclient_1_1_pooling_h_t_t_p_client.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/classqcloudsms__csharp_1_1httpclient_1_1_pooling_h_t_t_p_client.png -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1json_1_1_j_s_o_n_array_builder.js: -------------------------------------------------------------------------------- 1 | var classqcloudsms__csharp_1_1json_1_1_j_s_o_n_array_builder = 2 | [ 3 | [ "JSONArrayBuilder", "classqcloudsms__csharp_1_1json_1_1_j_s_o_n_array_builder.html#a57c9938ce86b834e5a417367703f228b", null ], 4 | [ "Build", "classqcloudsms__csharp_1_1json_1_1_j_s_o_n_array_builder.html#ac3c977cef073a9835bcd48ae6f055945", null ], 5 | [ "Put", "classqcloudsms__csharp_1_1json_1_1_j_s_o_n_array_builder.html#a846bff907105bfcb7694a026fb537aca", null ] 6 | ]; -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1json_1_1_j_s_o_n_exception.js: -------------------------------------------------------------------------------- 1 | var classqcloudsms__csharp_1_1json_1_1_j_s_o_n_exception = 2 | [ 3 | [ "JSONException", "classqcloudsms__csharp_1_1json_1_1_j_s_o_n_exception.html#a3bbcf888c6b47f608610c1391f448096", null ], 4 | [ "JSONException", "classqcloudsms__csharp_1_1json_1_1_j_s_o_n_exception.html#a66f3ccc49478307032481f9938e7198e", null ] 5 | ]; -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1json_1_1_j_s_o_n_exception.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/classqcloudsms__csharp_1_1json_1_1_j_s_o_n_exception.png -------------------------------------------------------------------------------- /docs/classqcloudsms__csharp_1_1json_1_1_j_s_o_n_object_builder.js: -------------------------------------------------------------------------------- 1 | var classqcloudsms__csharp_1_1json_1_1_j_s_o_n_object_builder = 2 | [ 3 | [ "JSONObjectBuilder", "classqcloudsms__csharp_1_1json_1_1_j_s_o_n_object_builder.html#a724fe42ef1bfab11311f531206ace615", null ], 4 | [ "Build", "classqcloudsms__csharp_1_1json_1_1_j_s_o_n_object_builder.html#abbe873b73a0d58fc4ad35ecc3894b5ce", null ], 5 | [ "Put", "classqcloudsms__csharp_1_1json_1_1_j_s_o_n_object_builder.html#a36c00597ada8210cd4dac53a5f5767f9", null ], 6 | [ "PutArray", "classqcloudsms__csharp_1_1json_1_1_j_s_o_n_object_builder.html#a635c05777a04fbb3751e805ee671855e", null ], 7 | [ "PutArray", "classqcloudsms__csharp_1_1json_1_1_j_s_o_n_object_builder.html#a1ce039e7fd1cdb4b3b395c9366e31269", null ] 8 | ]; -------------------------------------------------------------------------------- /docs/closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/closed.png -------------------------------------------------------------------------------- /docs/dir_da4c9dd239018fe26269ba2e1cf7c9a1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | qcloudsms_csharp: src/json 目录参考 8 | 9 | 10 | 11 | 12 | 13 | 14 | 18 | 19 | 20 | 23 | 24 | 25 | 26 |
27 |
28 | 29 | 30 | 31 | 36 | 37 | 38 |
32 |
qcloudsms_csharp 33 |  0.1.6 34 |
35 |
39 |
40 | 41 | 42 | 45 | 68 |
69 |
70 | 75 |
77 |
78 |
79 | 82 |
83 | 84 |
88 |  全部  命名空间 函数
89 | 90 | 91 |
92 | 95 |
96 | 97 |
98 |
99 |
json 目录参考
100 |
101 |
102 | 103 | 105 | 106 | 107 | 108 | 109 |

104 | 文件

文件  JSONException.cs
 
文件  JSONObject.cs
 
110 |
111 |
112 | 113 | 121 | 122 | 123 | -------------------------------------------------------------------------------- /docs/doxygen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/doxygen.png -------------------------------------------------------------------------------- /docs/dynsections.js: -------------------------------------------------------------------------------- 1 | function toggleVisibility(linkObj) 2 | { 3 | var base = $(linkObj).attr('id'); 4 | var summary = $('#'+base+'-summary'); 5 | var content = $('#'+base+'-content'); 6 | var trigger = $('#'+base+'-trigger'); 7 | var src=$(trigger).attr('src'); 8 | if (content.is(':visible')===true) { 9 | content.hide(); 10 | summary.show(); 11 | $(linkObj).addClass('closed').removeClass('opened'); 12 | $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); 13 | } else { 14 | content.show(); 15 | summary.hide(); 16 | $(linkObj).removeClass('closed').addClass('opened'); 17 | $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); 18 | } 19 | return false; 20 | } 21 | 22 | function updateStripes() 23 | { 24 | $('table.directory tr'). 25 | removeClass('even').filter(':visible:even').addClass('even'); 26 | } 27 | function toggleLevel(level) 28 | { 29 | $('table.directory tr').each(function(){ 30 | var l = this.id.split('_').length-1; 31 | var i = $('#img'+this.id.substring(3)); 32 | var a = $('#arr'+this.id.substring(3)); 33 | if (l 2 | 3 | 4 | 5 | 6 | 7 | qcloudsms_csharp: 首页 8 | 9 | 10 | 11 | 12 | 13 | 14 | 18 | 19 | 20 | 23 | 24 | 25 | 26 |
27 |
28 | 29 | 30 | 31 | 36 | 37 | 38 |
32 |
qcloudsms_csharp 33 |  0.1.6 34 |
35 |
39 |
40 | 41 | 42 | 45 | 68 |
69 |
70 | 75 |
77 |
78 |
79 | 82 |
83 | 84 | 89 | 90 | 91 |
92 | 95 |
96 | 97 |
98 |
99 |
qcloudsms_csharp 文档
100 |
101 |
102 |
103 |
104 | 105 | 112 | 113 | 114 | -------------------------------------------------------------------------------- /docs/installdox: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl 2 | 3 | %subst = ( ); 4 | $quiet = 0; 5 | 6 | if (open(F,"search.cfg")) 7 | { 8 | $_= ; s/[ \t\n]*$//g ; $subst{"_doc"} = $_; 9 | $_= ; s/[ \t\n]*$//g ; $subst{"_cgi"} = $_; 10 | } 11 | 12 | while ( @ARGV ) { 13 | $_ = shift @ARGV; 14 | if ( s/^-// ) { 15 | if ( /^l(.*)/ ) { 16 | $v = ($1 eq "") ? shift @ARGV : $1; 17 | ($v =~ /\/$/) || ($v .= "/"); 18 | $_ = $v; 19 | if ( /(.+)\@(.+)/ ) { 20 | if ( exists $subst{$1} ) { 21 | $subst{$1} = $2; 22 | } else { 23 | print STDERR "Unknown tag file $1 given with option -l\n"; 24 | &usage(); 25 | } 26 | } else { 27 | print STDERR "Argument $_ is invalid for option -l\n"; 28 | &usage(); 29 | } 30 | } 31 | elsif ( /^q/ ) { 32 | $quiet = 1; 33 | } 34 | elsif ( /^\?|^h/ ) { 35 | &usage(); 36 | } 37 | else { 38 | print STDERR "Illegal option -$_\n"; 39 | &usage(); 40 | } 41 | } 42 | else { 43 | push (@files, $_ ); 44 | } 45 | } 46 | 47 | foreach $sub (keys %subst) 48 | { 49 | if ( $subst{$sub} eq "" ) 50 | { 51 | print STDERR "No substitute given for tag file `$sub'\n"; 52 | &usage(); 53 | } 54 | elsif ( ! $quiet && $sub ne "_doc" && $sub ne "_cgi" ) 55 | { 56 | print "Substituting $subst{$sub} for each occurence of tag file $sub\n"; 57 | } 58 | } 59 | 60 | if ( ! @files ) { 61 | if (opendir(D,".")) { 62 | foreach $file ( readdir(D) ) { 63 | $match = ".html"; 64 | next if ( $file =~ /^\.\.?$/ ); 65 | ($file =~ /$match/) && (push @files, $file); 66 | ($file =~ "tree.js") && (push @files, $file); 67 | } 68 | closedir(D); 69 | } 70 | } 71 | 72 | if ( ! @files ) { 73 | print STDERR "Warning: No input files given and none found!\n"; 74 | } 75 | 76 | foreach $f (@files) 77 | { 78 | if ( ! $quiet ) { 79 | print "Editing: $f...\n"; 80 | } 81 | $oldf = $f; 82 | $f .= ".bak"; 83 | unless (rename $oldf,$f) { 84 | print STDERR "Error: cannot rename file $oldf\n"; 85 | exit 1; 86 | } 87 | if (open(F,"<$f")) { 88 | unless (open(G,">$oldf")) { 89 | print STDERR "Error: opening file $oldf for writing\n"; 90 | exit 1; 91 | } 92 | if ($oldf ne "tree.js") { 93 | while () { 94 | s/doxygen\=\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\" (href|src)=\"\2/doxygen\=\"$1:$subst{$1}\" \3=\"$subst{$1}/g; 95 | print G "$_"; 96 | } 97 | } 98 | else { 99 | while () { 100 | s/\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\", \"\2/\"$1:$subst{$1}\" ,\"$subst{$1}/g; 101 | print G "$_"; 102 | } 103 | } 104 | } 105 | else { 106 | print STDERR "Warning file $f does not exist\n"; 107 | } 108 | unlink $f; 109 | } 110 | 111 | sub usage { 112 | print STDERR "Usage: installdox [options] [html-file [html-file ...]]\n"; 113 | print STDERR "Options:\n"; 114 | print STDERR " -l tagfile\@linkName tag file + URL or directory \n"; 115 | print STDERR " -q Quiet mode\n\n"; 116 | exit 1; 117 | } 118 | -------------------------------------------------------------------------------- /docs/interfaceqcloudsms__csharp_1_1httpclient_1_1_i_h_t_t_p_client.js: -------------------------------------------------------------------------------- 1 | var interfaceqcloudsms__csharp_1_1httpclient_1_1_i_h_t_t_p_client = 2 | [ 3 | [ "close", "interfaceqcloudsms__csharp_1_1httpclient_1_1_i_h_t_t_p_client.html#a6b0eef9470453f9cad1d3b567189d309", null ], 4 | [ "fetch", "interfaceqcloudsms__csharp_1_1httpclient_1_1_i_h_t_t_p_client.html#a58f11ea91619031f4d9a84ee5c797dc5", null ] 5 | ]; -------------------------------------------------------------------------------- /docs/interfaceqcloudsms__csharp_1_1httpclient_1_1_i_h_t_t_p_client.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/interfaceqcloudsms__csharp_1_1httpclient_1_1_i_h_t_t_p_client.png -------------------------------------------------------------------------------- /docs/main.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | qcloudsms_csharp: 首页 6 | 7 | 8 | 9 | 10 | 11 | 19 |
20 |

qcloudsms_csharp 文档

0.1.0

21 |
制作者  22 | 23 | doxygen 1.6.2
24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/namespaceqcloudsms__csharp.js: -------------------------------------------------------------------------------- 1 | var namespaceqcloudsms__csharp = 2 | [ 3 | [ "httpclient", "namespaceqcloudsms__csharp_1_1httpclient.html", "namespaceqcloudsms__csharp_1_1httpclient" ], 4 | [ "json", "namespaceqcloudsms__csharp_1_1json.html", "namespaceqcloudsms__csharp_1_1json" ], 5 | [ "FileVoiceSender", "classqcloudsms__csharp_1_1_file_voice_sender.html", "classqcloudsms__csharp_1_1_file_voice_sender" ], 6 | [ "FileVoiceSenderResult", "classqcloudsms__csharp_1_1_file_voice_sender_result.html", "classqcloudsms__csharp_1_1_file_voice_sender_result" ], 7 | [ "SmsBase", "classqcloudsms__csharp_1_1_sms_base.html", "classqcloudsms__csharp_1_1_sms_base" ], 8 | [ "SmsMobileStatusPuller", "classqcloudsms__csharp_1_1_sms_mobile_status_puller.html", "classqcloudsms__csharp_1_1_sms_mobile_status_puller" ], 9 | [ "SmsMultiSender", "classqcloudsms__csharp_1_1_sms_multi_sender.html", "classqcloudsms__csharp_1_1_sms_multi_sender" ], 10 | [ "SmsMultiSenderResult", "classqcloudsms__csharp_1_1_sms_multi_sender_result.html", "classqcloudsms__csharp_1_1_sms_multi_sender_result" ], 11 | [ "SmsResultBase", "classqcloudsms__csharp_1_1_sms_result_base.html", "classqcloudsms__csharp_1_1_sms_result_base" ], 12 | [ "SmsSingleSender", "classqcloudsms__csharp_1_1_sms_single_sender.html", "classqcloudsms__csharp_1_1_sms_single_sender" ], 13 | [ "SmsSingleSenderResult", "classqcloudsms__csharp_1_1_sms_single_sender_result.html", "classqcloudsms__csharp_1_1_sms_single_sender_result" ], 14 | [ "SmsStatusPullCallbackResult", "classqcloudsms__csharp_1_1_sms_status_pull_callback_result.html", "classqcloudsms__csharp_1_1_sms_status_pull_callback_result" ], 15 | [ "SmsStatusPuller", "classqcloudsms__csharp_1_1_sms_status_puller.html", "classqcloudsms__csharp_1_1_sms_status_puller" ], 16 | [ "SmsStatusPullReplyResult", "classqcloudsms__csharp_1_1_sms_status_pull_reply_result.html", "classqcloudsms__csharp_1_1_sms_status_pull_reply_result" ], 17 | [ "SmsVoicePromptSender", "classqcloudsms__csharp_1_1_sms_voice_prompt_sender.html", "classqcloudsms__csharp_1_1_sms_voice_prompt_sender" ], 18 | [ "SmsVoicePromptSenderResult", "classqcloudsms__csharp_1_1_sms_voice_prompt_sender_result.html", "classqcloudsms__csharp_1_1_sms_voice_prompt_sender_result" ], 19 | [ "SmsVoiceVerifyCodeSender", "classqcloudsms__csharp_1_1_sms_voice_verify_code_sender.html", "classqcloudsms__csharp_1_1_sms_voice_verify_code_sender" ], 20 | [ "SmsVoiceVerifyCodeSenderResult", "classqcloudsms__csharp_1_1_sms_voice_verify_code_sender_result.html", "classqcloudsms__csharp_1_1_sms_voice_verify_code_sender_result" ], 21 | [ "TtsVoiceSender", "classqcloudsms__csharp_1_1_tts_voice_sender.html", "classqcloudsms__csharp_1_1_tts_voice_sender" ], 22 | [ "TtsVoiceSenderResult", "classqcloudsms__csharp_1_1_tts_voice_sender_result.html", "classqcloudsms__csharp_1_1_tts_voice_sender_result" ], 23 | [ "VoiceFileUploader", "classqcloudsms__csharp_1_1_voice_file_uploader.html", "classqcloudsms__csharp_1_1_voice_file_uploader" ], 24 | [ "VoiceFileUploaderResult", "classqcloudsms__csharp_1_1_voice_file_uploader_result.html", "classqcloudsms__csharp_1_1_voice_file_uploader_result" ] 25 | ]; -------------------------------------------------------------------------------- /docs/namespaceqcloudsms__csharp_1_1httpclient.js: -------------------------------------------------------------------------------- 1 | var namespaceqcloudsms__csharp_1_1httpclient = 2 | [ 3 | [ "DefaultHTTPClient", "classqcloudsms__csharp_1_1httpclient_1_1_default_h_t_t_p_client.html", "classqcloudsms__csharp_1_1httpclient_1_1_default_h_t_t_p_client" ], 4 | [ "HTTPException", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_exception.html", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_exception" ], 5 | [ "HTTPRequest", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_request.html", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_request" ], 6 | [ "HTTPResponse", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_response.html", "classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_response" ], 7 | [ "IHTTPClient", "interfaceqcloudsms__csharp_1_1httpclient_1_1_i_h_t_t_p_client.html", "interfaceqcloudsms__csharp_1_1httpclient_1_1_i_h_t_t_p_client" ], 8 | [ "PoolingHTTPClient", "classqcloudsms__csharp_1_1httpclient_1_1_pooling_h_t_t_p_client.html", "classqcloudsms__csharp_1_1httpclient_1_1_pooling_h_t_t_p_client" ] 9 | ]; -------------------------------------------------------------------------------- /docs/namespaceqcloudsms__csharp_1_1json.js: -------------------------------------------------------------------------------- 1 | var namespaceqcloudsms__csharp_1_1json = 2 | [ 3 | [ "JSONException", "classqcloudsms__csharp_1_1json_1_1_j_s_o_n_exception.html", "classqcloudsms__csharp_1_1json_1_1_j_s_o_n_exception" ], 4 | [ "JSONObjectBuilder", "classqcloudsms__csharp_1_1json_1_1_j_s_o_n_object_builder.html", "classqcloudsms__csharp_1_1json_1_1_j_s_o_n_object_builder" ], 5 | [ "JSONArrayBuilder", "classqcloudsms__csharp_1_1json_1_1_j_s_o_n_array_builder.html", "classqcloudsms__csharp_1_1json_1_1_j_s_o_n_array_builder" ] 6 | ]; -------------------------------------------------------------------------------- /docs/namespaces.js: -------------------------------------------------------------------------------- 1 | var namespaces = 2 | [ 3 | [ "qcloudsms_csharp", "namespaceqcloudsms__csharp.html", "namespaceqcloudsms__csharp" ] 4 | ]; -------------------------------------------------------------------------------- /docs/nav_f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/nav_f.png -------------------------------------------------------------------------------- /docs/nav_g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/nav_g.png -------------------------------------------------------------------------------- /docs/nav_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/nav_h.png -------------------------------------------------------------------------------- /docs/navtree.css: -------------------------------------------------------------------------------- 1 | #nav-tree .children_ul { 2 | margin:0; 3 | padding:4px; 4 | } 5 | 6 | #nav-tree ul { 7 | list-style:none outside none; 8 | margin:0px; 9 | padding:0px; 10 | } 11 | 12 | #nav-tree li { 13 | white-space:nowrap; 14 | margin:0px; 15 | padding:0px; 16 | } 17 | 18 | #nav-tree .plus { 19 | margin:0px; 20 | } 21 | 22 | #nav-tree .selected { 23 | background-image: url('tab_a.png'); 24 | background-repeat:repeat-x; 25 | color: #fff; 26 | text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); 27 | } 28 | 29 | #nav-tree img { 30 | margin:0px; 31 | padding:0px; 32 | border:0px; 33 | vertical-align: middle; 34 | } 35 | 36 | #nav-tree a { 37 | text-decoration:none; 38 | padding:0px; 39 | margin:0px; 40 | outline:none; 41 | } 42 | 43 | #nav-tree .label { 44 | margin:0px; 45 | padding:0px; 46 | font: 12px 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; 47 | } 48 | 49 | #nav-tree .label a { 50 | padding:2px; 51 | } 52 | 53 | #nav-tree .selected a { 54 | text-decoration:none; 55 | color:#fff; 56 | } 57 | 58 | #nav-tree .children_ul { 59 | margin:0px; 60 | padding:0px; 61 | } 62 | 63 | #nav-tree .item { 64 | margin:0px; 65 | padding:0px; 66 | } 67 | 68 | #nav-tree { 69 | padding: 0px 0px; 70 | background-color: #FAFAFF; 71 | font-size:14px; 72 | overflow:auto; 73 | } 74 | 75 | #doc-content { 76 | overflow:auto; 77 | display:block; 78 | padding:0px; 79 | margin:0px; 80 | -webkit-overflow-scrolling : touch; /* iOS 5+ */ 81 | } 82 | 83 | #side-nav { 84 | padding:0 6px 0 0; 85 | margin: 0px; 86 | display:block; 87 | position: absolute; 88 | left: 0px; 89 | width: 250px; 90 | } 91 | 92 | .ui-resizable .ui-resizable-handle { 93 | display:block; 94 | } 95 | 96 | .ui-resizable-e { 97 | background:url("ftv2splitbar.png") repeat scroll right center transparent; 98 | cursor:e-resize; 99 | height:100%; 100 | right:0; 101 | top:0; 102 | width:6px; 103 | } 104 | 105 | .ui-resizable-handle { 106 | display:none; 107 | font-size:0.1px; 108 | position:absolute; 109 | z-index:1; 110 | } 111 | 112 | #nav-tree-contents { 113 | margin: 6px 0px 0px 0px; 114 | } 115 | 116 | #nav-tree { 117 | background-image:url('nav_h.png'); 118 | background-repeat:repeat-x; 119 | background-color: #F9FAFC; 120 | -webkit-overflow-scrolling : touch; /* iOS 5+ */ 121 | } 122 | 123 | #nav-sync { 124 | position:absolute; 125 | top:5px; 126 | right:24px; 127 | z-index:0; 128 | } 129 | 130 | #nav-sync img { 131 | opacity:0.3; 132 | } 133 | 134 | #nav-sync img:hover { 135 | opacity:0.9; 136 | } 137 | 138 | @media print 139 | { 140 | #nav-tree { display: none; } 141 | div.ui-resizable-handle { display: none; position: relative; } 142 | } 143 | 144 | -------------------------------------------------------------------------------- /docs/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/open.png -------------------------------------------------------------------------------- /docs/resize.js: -------------------------------------------------------------------------------- 1 | var cookie_namespace = 'doxygen'; 2 | var sidenav,navtree,content,header; 3 | 4 | function readCookie(cookie) 5 | { 6 | var myCookie = cookie_namespace+"_"+cookie+"="; 7 | if (document.cookie) 8 | { 9 | var index = document.cookie.indexOf(myCookie); 10 | if (index != -1) 11 | { 12 | var valStart = index + myCookie.length; 13 | var valEnd = document.cookie.indexOf(";", valStart); 14 | if (valEnd == -1) 15 | { 16 | valEnd = document.cookie.length; 17 | } 18 | var val = document.cookie.substring(valStart, valEnd); 19 | return val; 20 | } 21 | } 22 | return 0; 23 | } 24 | 25 | function writeCookie(cookie, val, expiration) 26 | { 27 | if (val==undefined) return; 28 | if (expiration == null) 29 | { 30 | var date = new Date(); 31 | date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week 32 | expiration = date.toGMTString(); 33 | } 34 | document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; expires=" + expiration+"; path=/"; 35 | } 36 | 37 | function resizeWidth() 38 | { 39 | var windowWidth = $(window).width() + "px"; 40 | var sidenavWidth = $(sidenav).outerWidth(); 41 | content.css({marginLeft:parseInt(sidenavWidth)+"px"}); 42 | writeCookie('width',sidenavWidth, null); 43 | } 44 | 45 | function restoreWidth(navWidth) 46 | { 47 | var windowWidth = $(window).width() + "px"; 48 | content.css({marginLeft:parseInt(navWidth)+6+"px"}); 49 | sidenav.css({width:navWidth + "px"}); 50 | } 51 | 52 | function resizeHeight() 53 | { 54 | var headerHeight = header.outerHeight(); 55 | var footerHeight = footer.outerHeight(); 56 | var windowHeight = $(window).height() - headerHeight - footerHeight; 57 | content.css({height:windowHeight + "px"}); 58 | navtree.css({height:windowHeight + "px"}); 59 | sidenav.css({height:windowHeight + "px",top: headerHeight+"px"}); 60 | } 61 | 62 | function initResizable() 63 | { 64 | header = $("#top"); 65 | sidenav = $("#side-nav"); 66 | content = $("#doc-content"); 67 | navtree = $("#nav-tree"); 68 | footer = $("#nav-path"); 69 | $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); 70 | $(window).resize(function() { resizeHeight(); }); 71 | var width = readCookie('width'); 72 | if (width) { restoreWidth(width); } else { resizeWidth(); } 73 | resizeHeight(); 74 | var url = location.href; 75 | var i=url.indexOf("#"); 76 | if (i>=0) window.location.hash=url.substr(i); 77 | var _preventDefault = function(evt) { evt.preventDefault(); }; 78 | $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); 79 | $(document).bind('touchmove',function(e){ 80 | try { 81 | var target = e.target; 82 | while (target) { 83 | if ($(target).css('-webkit-overflow-scrolling')=='touch') return; 84 | target = target.parentNode; 85 | } 86 | e.preventDefault(); 87 | } catch(err) { 88 | e.preventDefault(); 89 | } 90 | }); 91 | } 92 | 93 | 94 | -------------------------------------------------------------------------------- /docs/search/all_63.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
载入中...
12 |
13 | 16 |
搜索中...
17 |
未找到
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/search/all_63.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['callback',['Callback',['../classqcloudsms__csharp_1_1_sms_status_pull_callback_result_1_1_callback.html',1,'qcloudsms_csharp::SmsStatusPullCallbackResult']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/all_64.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
载入中...
12 |
13 | 16 |
搜索中...
17 |
未找到
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/search/all_64.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['defaulthttpclient',['DefaultHTTPClient',['../classqcloudsms__csharp_1_1httpclient_1_1_default_h_t_t_p_client.html',1,'qcloudsms_csharp::httpclient']]], 4 | ['detail',['Detail',['../classqcloudsms__csharp_1_1_sms_multi_sender_result_1_1_detail.html',1,'qcloudsms_csharp::SmsMultiSenderResult']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/all_66.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
载入中...
12 |
13 | 16 |
搜索中...
17 |
未找到
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/search/all_66.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['filevoicesender',['FileVoiceSender',['../classqcloudsms__csharp_1_1_file_voice_sender.html',1,'qcloudsms_csharp']]], 4 | ['filevoicesenderresult',['FileVoiceSenderResult',['../classqcloudsms__csharp_1_1_file_voice_sender_result.html',1,'qcloudsms_csharp']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/all_67.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
载入中...
12 |
13 | 16 |
搜索中...
17 |
未找到
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/search/all_67.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['getresponse',['getResponse',['../classqcloudsms__csharp_1_1_sms_result_base.html#ad815a42e08a2d0040a916c3100d33f18',1,'qcloudsms_csharp::SmsResultBase']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/all_68.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
载入中...
12 |
13 | 16 |
搜索中...
17 |
未找到
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/search/all_68.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['handleerror',['handleError',['../classqcloudsms__csharp_1_1_sms_base.html#a4429d661fb8b3a029a96b9cb45cd13d9',1,'qcloudsms_csharp::SmsBase']]], 4 | ['httpexception',['HTTPException',['../classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_exception.html',1,'qcloudsms_csharp::httpclient']]], 5 | ['httprequest',['HTTPRequest',['../classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_request.html',1,'qcloudsms_csharp::httpclient']]], 6 | ['httpresponse',['HTTPResponse',['../classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_response.html',1,'qcloudsms_csharp::httpclient']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/search/all_69.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
载入中...
12 |
13 | 16 |
搜索中...
17 |
未找到
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/search/all_69.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['ihttpclient',['IHTTPClient',['../interfaceqcloudsms__csharp_1_1httpclient_1_1_i_h_t_t_p_client.html',1,'qcloudsms_csharp::httpclient']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/all_6a.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
载入中...
12 |
13 | 16 |
搜索中...
17 |
未找到
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/search/all_6a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['jsonarraybuilder',['JSONArrayBuilder',['../classqcloudsms__csharp_1_1json_1_1_j_s_o_n_array_builder.html',1,'qcloudsms_csharp::json']]], 4 | ['jsonexception',['JSONException',['../classqcloudsms__csharp_1_1json_1_1_j_s_o_n_exception.html',1,'qcloudsms_csharp::json']]], 5 | ['jsonobjectbuilder',['JSONObjectBuilder',['../classqcloudsms__csharp_1_1json_1_1_j_s_o_n_object_builder.html',1,'qcloudsms_csharp::json']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/search/all_70.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
载入中...
12 |
13 | 16 |
搜索中...
17 |
未找到
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/search/all_70.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['parsefromhttpresponse',['parseFromHTTPResponse',['../classqcloudsms__csharp_1_1_file_voice_sender_result.html#acd9426edc2779dfb2307d663220694e5',1,'qcloudsms_csharp.FileVoiceSenderResult.parseFromHTTPResponse()'],['../classqcloudsms__csharp_1_1_sms_multi_sender_result.html#a649f621be3634acd6cafbba9fe9564e0',1,'qcloudsms_csharp.SmsMultiSenderResult.parseFromHTTPResponse()'],['../classqcloudsms__csharp_1_1_sms_result_base.html#a547e8f85b93d11c74cf6056e561b8255',1,'qcloudsms_csharp.SmsResultBase.parseFromHTTPResponse()'],['../classqcloudsms__csharp_1_1_sms_single_sender_result.html#a017852f3e7f3768dc11b5888d702ca88',1,'qcloudsms_csharp.SmsSingleSenderResult.parseFromHTTPResponse()'],['../classqcloudsms__csharp_1_1_sms_status_pull_callback_result.html#aa0b985a9043e578db2fa2188d52b1d45',1,'qcloudsms_csharp.SmsStatusPullCallbackResult.parseFromHTTPResponse()'],['../classqcloudsms__csharp_1_1_sms_status_pull_reply_result.html#a09d112933d2b97ebc65ccbfde5e0a20b',1,'qcloudsms_csharp.SmsStatusPullReplyResult.parseFromHTTPResponse()'],['../classqcloudsms__csharp_1_1_sms_voice_prompt_sender_result.html#a10825b6de39a071c5a27b2a5c6eebb4b',1,'qcloudsms_csharp.SmsVoicePromptSenderResult.parseFromHTTPResponse()'],['../classqcloudsms__csharp_1_1_sms_voice_verify_code_sender_result.html#a362587b86ba8aea8728eabdac503f385',1,'qcloudsms_csharp.SmsVoiceVerifyCodeSenderResult.parseFromHTTPResponse()'],['../classqcloudsms__csharp_1_1_tts_voice_sender_result.html#afc6ace2efa12fde819657dba4142c40f',1,'qcloudsms_csharp.TtsVoiceSenderResult.parseFromHTTPResponse()'],['../classqcloudsms__csharp_1_1_voice_file_uploader_result.html#a3e56b8698282083d851324bbad929c74',1,'qcloudsms_csharp.VoiceFileUploaderResult.parseFromHTTPResponse()']]], 4 | ['parsetojson',['parseToJson',['../classqcloudsms__csharp_1_1_sms_result_base.html#a5936f24aee00b69a7f462ce131620f7d',1,'qcloudsms_csharp::SmsResultBase']]], 5 | ['poolinghttpclient',['PoolingHTTPClient',['../classqcloudsms__csharp_1_1httpclient_1_1_pooling_h_t_t_p_client.html',1,'qcloudsms_csharp::httpclient']]], 6 | ['pullcallback',['pullCallback',['../classqcloudsms__csharp_1_1_sms_mobile_status_puller.html#a31e3ea54bca7a25496b7a1108bea5c72',1,'qcloudsms_csharp.SmsMobileStatusPuller.pullCallback()'],['../classqcloudsms__csharp_1_1_sms_status_puller.html#a48530deaa1a8c6583998b91ca863cd3d',1,'qcloudsms_csharp.SmsStatusPuller.pullCallback()']]], 7 | ['pullreply',['pullReply',['../classqcloudsms__csharp_1_1_sms_mobile_status_puller.html#a01432512d23a8dcbd0d30a90c51d3bc6',1,'qcloudsms_csharp.SmsMobileStatusPuller.pullReply()'],['../classqcloudsms__csharp_1_1_sms_status_puller.html#aa8e8b72b82f11d302ab976d7da5e2861',1,'qcloudsms_csharp.SmsStatusPuller.pullReply()']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /docs/search/all_71.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
载入中...
12 |
13 | 16 |
搜索中...
17 |
未找到
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/search/all_71.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['httpclient',['httpclient',['../namespaceqcloudsms__csharp_1_1httpclient.html',1,'qcloudsms_csharp']]], 4 | ['json',['json',['../namespaceqcloudsms__csharp_1_1json.html',1,'qcloudsms_csharp']]], 5 | ['qcloudsms_5fcsharp',['qcloudsms_csharp',['../namespaceqcloudsms__csharp.html',1,'']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/search/all_72.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
载入中...
12 |
13 | 16 |
搜索中...
17 |
未找到
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/search/all_72.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['reply',['Reply',['../classqcloudsms__csharp_1_1_sms_status_pull_reply_result_1_1_reply.html',1,'qcloudsms_csharp::SmsStatusPullReplyResult']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/all_73.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
载入中...
12 |
13 | 16 |
搜索中...
17 |
未找到
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/search/all_73.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['send',['send',['../classqcloudsms__csharp_1_1_file_voice_sender.html#a1a595bf3942356bef59a4f3f60f36365',1,'qcloudsms_csharp.FileVoiceSender.send()'],['../classqcloudsms__csharp_1_1_sms_multi_sender.html#a804ff6499a68488a468edbe7b3bd9892',1,'qcloudsms_csharp.SmsMultiSender.send(int type, string nationCode, List< string > phoneNumbers, string msg, string extend, string ext)'],['../classqcloudsms__csharp_1_1_sms_multi_sender.html#a59178a59908cec9d99350809bdcc34b6',1,'qcloudsms_csharp.SmsMultiSender.send(int type, string nationCode, string[] phoneNumbers, string msg, string extend, string ext)'],['../classqcloudsms__csharp_1_1_sms_single_sender.html#a78fe589301a98304d800f5ca58941bf1',1,'qcloudsms_csharp.SmsSingleSender.send()'],['../classqcloudsms__csharp_1_1_sms_voice_prompt_sender.html#aa244a712782437caea9b0325d83cf8bf',1,'qcloudsms_csharp.SmsVoicePromptSender.send()'],['../classqcloudsms__csharp_1_1_sms_voice_verify_code_sender.html#a991e696ba1fcd6be4a4f327b6aacb59d',1,'qcloudsms_csharp.SmsVoiceVerifyCodeSender.send()'],['../classqcloudsms__csharp_1_1_tts_voice_sender.html#acf9863ffcae675eec1fe12ac4ed516d2',1,'qcloudsms_csharp.TtsVoiceSender.send()']]], 4 | ['sendwithparam',['sendWithParam',['../classqcloudsms__csharp_1_1_sms_multi_sender.html#a784ed4935818efbc52c699440964ffde',1,'qcloudsms_csharp.SmsMultiSender.sendWithParam(string nationCode, List< string > phoneNumbers, int templateId, List< string > parameters, string sign, string extend, string ext)'],['../classqcloudsms__csharp_1_1_sms_multi_sender.html#a49c7bcf9d67d4bb20cae30781c23fb99',1,'qcloudsms_csharp.SmsMultiSender.sendWithParam(string nationCode, string[] phoneNumbers, int templateId, string[] parameters, string sign, string extend, string ext)'],['../classqcloudsms__csharp_1_1_sms_single_sender.html#a647e118ab72bd7de3d3f46d538b580ab',1,'qcloudsms_csharp.SmsSingleSender.sendWithParam()']]], 5 | ['smsbase',['SmsBase',['../classqcloudsms__csharp_1_1_sms_base.html',1,'qcloudsms_csharp']]], 6 | ['smsmobilestatuspuller',['SmsMobileStatusPuller',['../classqcloudsms__csharp_1_1_sms_mobile_status_puller.html',1,'qcloudsms_csharp']]], 7 | ['smsmultisender',['SmsMultiSender',['../classqcloudsms__csharp_1_1_sms_multi_sender.html',1,'qcloudsms_csharp']]], 8 | ['smsmultisenderresult',['SmsMultiSenderResult',['../classqcloudsms__csharp_1_1_sms_multi_sender_result.html',1,'qcloudsms_csharp']]], 9 | ['smsresultbase',['SmsResultBase',['../classqcloudsms__csharp_1_1_sms_result_base.html',1,'qcloudsms_csharp']]], 10 | ['smssinglesender',['SmsSingleSender',['../classqcloudsms__csharp_1_1_sms_single_sender.html',1,'qcloudsms_csharp']]], 11 | ['smssinglesenderresult',['SmsSingleSenderResult',['../classqcloudsms__csharp_1_1_sms_single_sender_result.html',1,'qcloudsms_csharp']]], 12 | ['smsstatuspullcallbackresult',['SmsStatusPullCallbackResult',['../classqcloudsms__csharp_1_1_sms_status_pull_callback_result.html',1,'qcloudsms_csharp']]], 13 | ['smsstatuspuller',['SmsStatusPuller',['../classqcloudsms__csharp_1_1_sms_status_puller.html',1,'qcloudsms_csharp']]], 14 | ['smsstatuspullreplyresult',['SmsStatusPullReplyResult',['../classqcloudsms__csharp_1_1_sms_status_pull_reply_result.html',1,'qcloudsms_csharp']]], 15 | ['smsvoicepromptsender',['SmsVoicePromptSender',['../classqcloudsms__csharp_1_1_sms_voice_prompt_sender.html',1,'qcloudsms_csharp']]], 16 | ['smsvoicepromptsenderresult',['SmsVoicePromptSenderResult',['../classqcloudsms__csharp_1_1_sms_voice_prompt_sender_result.html',1,'qcloudsms_csharp']]], 17 | ['smsvoiceverifycodesender',['SmsVoiceVerifyCodeSender',['../classqcloudsms__csharp_1_1_sms_voice_verify_code_sender.html',1,'qcloudsms_csharp']]], 18 | ['smsvoiceverifycodesenderresult',['SmsVoiceVerifyCodeSenderResult',['../classqcloudsms__csharp_1_1_sms_voice_verify_code_sender_result.html',1,'qcloudsms_csharp']]] 19 | ]; 20 | -------------------------------------------------------------------------------- /docs/search/all_74.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
载入中...
12 |
13 | 16 |
搜索中...
17 |
未找到
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/search/all_74.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['ttsvoicesender',['TtsVoiceSender',['../classqcloudsms__csharp_1_1_tts_voice_sender.html',1,'qcloudsms_csharp']]], 4 | ['ttsvoicesenderresult',['TtsVoiceSenderResult',['../classqcloudsms__csharp_1_1_tts_voice_sender_result.html',1,'qcloudsms_csharp']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/all_75.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
载入中...
12 |
13 | 16 |
搜索中...
17 |
未找到
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/search/all_75.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['upload',['upload',['../classqcloudsms__csharp_1_1_voice_file_uploader.html#a7d96eef54e4bc2576fcf88b473f04693',1,'qcloudsms_csharp::VoiceFileUploader']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/all_76.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
载入中...
12 |
13 | 16 |
搜索中...
17 |
未找到
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/search/all_76.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['voicefileuploader',['VoiceFileUploader',['../classqcloudsms__csharp_1_1_voice_file_uploader.html',1,'qcloudsms_csharp']]], 4 | ['voicefileuploaderresult',['VoiceFileUploaderResult',['../classqcloudsms__csharp_1_1_voice_file_uploader_result.html',1,'qcloudsms_csharp']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/classes_63.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
载入中...
12 |
13 | 16 |
搜索中...
17 |
未找到
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/search/classes_63.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['callback',['Callback',['../classqcloudsms__csharp_1_1_sms_status_pull_callback_result_1_1_callback.html',1,'qcloudsms_csharp::SmsStatusPullCallbackResult']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/classes_64.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
载入中...
12 |
13 | 16 |
搜索中...
17 |
未找到
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/search/classes_64.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['defaulthttpclient',['DefaultHTTPClient',['../classqcloudsms__csharp_1_1httpclient_1_1_default_h_t_t_p_client.html',1,'qcloudsms_csharp::httpclient']]], 4 | ['detail',['Detail',['../classqcloudsms__csharp_1_1_sms_multi_sender_result_1_1_detail.html',1,'qcloudsms_csharp::SmsMultiSenderResult']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/classes_66.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
载入中...
12 |
13 | 16 |
搜索中...
17 |
未找到
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/search/classes_66.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['filevoicesender',['FileVoiceSender',['../classqcloudsms__csharp_1_1_file_voice_sender.html',1,'qcloudsms_csharp']]], 4 | ['filevoicesenderresult',['FileVoiceSenderResult',['../classqcloudsms__csharp_1_1_file_voice_sender_result.html',1,'qcloudsms_csharp']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/classes_68.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
载入中...
12 |
13 | 16 |
搜索中...
17 |
未找到
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/search/classes_68.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['httpexception',['HTTPException',['../classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_exception.html',1,'qcloudsms_csharp::httpclient']]], 4 | ['httprequest',['HTTPRequest',['../classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_request.html',1,'qcloudsms_csharp::httpclient']]], 5 | ['httpresponse',['HTTPResponse',['../classqcloudsms__csharp_1_1httpclient_1_1_h_t_t_p_response.html',1,'qcloudsms_csharp::httpclient']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/search/classes_69.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
载入中...
12 |
13 | 16 |
搜索中...
17 |
未找到
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/search/classes_69.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['ihttpclient',['IHTTPClient',['../interfaceqcloudsms__csharp_1_1httpclient_1_1_i_h_t_t_p_client.html',1,'qcloudsms_csharp::httpclient']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/classes_6a.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
载入中...
12 |
13 | 16 |
搜索中...
17 |
未找到
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/search/classes_6a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['jsonarraybuilder',['JSONArrayBuilder',['../classqcloudsms__csharp_1_1json_1_1_j_s_o_n_array_builder.html',1,'qcloudsms_csharp::json']]], 4 | ['jsonexception',['JSONException',['../classqcloudsms__csharp_1_1json_1_1_j_s_o_n_exception.html',1,'qcloudsms_csharp::json']]], 5 | ['jsonobjectbuilder',['JSONObjectBuilder',['../classqcloudsms__csharp_1_1json_1_1_j_s_o_n_object_builder.html',1,'qcloudsms_csharp::json']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/search/classes_70.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
载入中...
12 |
13 | 16 |
搜索中...
17 |
未找到
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/search/classes_70.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['poolinghttpclient',['PoolingHTTPClient',['../classqcloudsms__csharp_1_1httpclient_1_1_pooling_h_t_t_p_client.html',1,'qcloudsms_csharp::httpclient']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/classes_72.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
载入中...
12 |
13 | 16 |
搜索中...
17 |
未找到
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/search/classes_72.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['reply',['Reply',['../classqcloudsms__csharp_1_1_sms_status_pull_reply_result_1_1_reply.html',1,'qcloudsms_csharp::SmsStatusPullReplyResult']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/classes_73.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
载入中...
12 |
13 | 16 |
搜索中...
17 |
未找到
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/search/classes_73.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['smsbase',['SmsBase',['../classqcloudsms__csharp_1_1_sms_base.html',1,'qcloudsms_csharp']]], 4 | ['smsmobilestatuspuller',['SmsMobileStatusPuller',['../classqcloudsms__csharp_1_1_sms_mobile_status_puller.html',1,'qcloudsms_csharp']]], 5 | ['smsmultisender',['SmsMultiSender',['../classqcloudsms__csharp_1_1_sms_multi_sender.html',1,'qcloudsms_csharp']]], 6 | ['smsmultisenderresult',['SmsMultiSenderResult',['../classqcloudsms__csharp_1_1_sms_multi_sender_result.html',1,'qcloudsms_csharp']]], 7 | ['smsresultbase',['SmsResultBase',['../classqcloudsms__csharp_1_1_sms_result_base.html',1,'qcloudsms_csharp']]], 8 | ['smssinglesender',['SmsSingleSender',['../classqcloudsms__csharp_1_1_sms_single_sender.html',1,'qcloudsms_csharp']]], 9 | ['smssinglesenderresult',['SmsSingleSenderResult',['../classqcloudsms__csharp_1_1_sms_single_sender_result.html',1,'qcloudsms_csharp']]], 10 | ['smsstatuspullcallbackresult',['SmsStatusPullCallbackResult',['../classqcloudsms__csharp_1_1_sms_status_pull_callback_result.html',1,'qcloudsms_csharp']]], 11 | ['smsstatuspuller',['SmsStatusPuller',['../classqcloudsms__csharp_1_1_sms_status_puller.html',1,'qcloudsms_csharp']]], 12 | ['smsstatuspullreplyresult',['SmsStatusPullReplyResult',['../classqcloudsms__csharp_1_1_sms_status_pull_reply_result.html',1,'qcloudsms_csharp']]], 13 | ['smsvoicepromptsender',['SmsVoicePromptSender',['../classqcloudsms__csharp_1_1_sms_voice_prompt_sender.html',1,'qcloudsms_csharp']]], 14 | ['smsvoicepromptsenderresult',['SmsVoicePromptSenderResult',['../classqcloudsms__csharp_1_1_sms_voice_prompt_sender_result.html',1,'qcloudsms_csharp']]], 15 | ['smsvoiceverifycodesender',['SmsVoiceVerifyCodeSender',['../classqcloudsms__csharp_1_1_sms_voice_verify_code_sender.html',1,'qcloudsms_csharp']]], 16 | ['smsvoiceverifycodesenderresult',['SmsVoiceVerifyCodeSenderResult',['../classqcloudsms__csharp_1_1_sms_voice_verify_code_sender_result.html',1,'qcloudsms_csharp']]] 17 | ]; 18 | -------------------------------------------------------------------------------- /docs/search/classes_74.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
载入中...
12 |
13 | 16 |
搜索中...
17 |
未找到
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/search/classes_74.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['ttsvoicesender',['TtsVoiceSender',['../classqcloudsms__csharp_1_1_tts_voice_sender.html',1,'qcloudsms_csharp']]], 4 | ['ttsvoicesenderresult',['TtsVoiceSenderResult',['../classqcloudsms__csharp_1_1_tts_voice_sender_result.html',1,'qcloudsms_csharp']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/classes_76.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
载入中...
12 |
13 | 16 |
搜索中...
17 |
未找到
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/search/classes_76.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['voicefileuploader',['VoiceFileUploader',['../classqcloudsms__csharp_1_1_voice_file_uploader.html',1,'qcloudsms_csharp']]], 4 | ['voicefileuploaderresult',['VoiceFileUploaderResult',['../classqcloudsms__csharp_1_1_voice_file_uploader_result.html',1,'qcloudsms_csharp']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/search/close.png -------------------------------------------------------------------------------- /docs/search/functions_67.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
载入中...
12 |
13 | 16 |
搜索中...
17 |
未找到
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/search/functions_67.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['getresponse',['getResponse',['../classqcloudsms__csharp_1_1_sms_result_base.html#ad815a42e08a2d0040a916c3100d33f18',1,'qcloudsms_csharp::SmsResultBase']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/functions_68.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
载入中...
12 |
13 | 16 |
搜索中...
17 |
未找到
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/search/functions_68.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['handleerror',['handleError',['../classqcloudsms__csharp_1_1_sms_base.html#a4429d661fb8b3a029a96b9cb45cd13d9',1,'qcloudsms_csharp::SmsBase']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/functions_70.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
载入中...
12 |
13 | 16 |
搜索中...
17 |
未找到
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/search/functions_70.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['parsefromhttpresponse',['parseFromHTTPResponse',['../classqcloudsms__csharp_1_1_file_voice_sender_result.html#acd9426edc2779dfb2307d663220694e5',1,'qcloudsms_csharp.FileVoiceSenderResult.parseFromHTTPResponse()'],['../classqcloudsms__csharp_1_1_sms_multi_sender_result.html#a649f621be3634acd6cafbba9fe9564e0',1,'qcloudsms_csharp.SmsMultiSenderResult.parseFromHTTPResponse()'],['../classqcloudsms__csharp_1_1_sms_result_base.html#a547e8f85b93d11c74cf6056e561b8255',1,'qcloudsms_csharp.SmsResultBase.parseFromHTTPResponse()'],['../classqcloudsms__csharp_1_1_sms_single_sender_result.html#a017852f3e7f3768dc11b5888d702ca88',1,'qcloudsms_csharp.SmsSingleSenderResult.parseFromHTTPResponse()'],['../classqcloudsms__csharp_1_1_sms_status_pull_callback_result.html#aa0b985a9043e578db2fa2188d52b1d45',1,'qcloudsms_csharp.SmsStatusPullCallbackResult.parseFromHTTPResponse()'],['../classqcloudsms__csharp_1_1_sms_status_pull_reply_result.html#a09d112933d2b97ebc65ccbfde5e0a20b',1,'qcloudsms_csharp.SmsStatusPullReplyResult.parseFromHTTPResponse()'],['../classqcloudsms__csharp_1_1_sms_voice_prompt_sender_result.html#a10825b6de39a071c5a27b2a5c6eebb4b',1,'qcloudsms_csharp.SmsVoicePromptSenderResult.parseFromHTTPResponse()'],['../classqcloudsms__csharp_1_1_sms_voice_verify_code_sender_result.html#a362587b86ba8aea8728eabdac503f385',1,'qcloudsms_csharp.SmsVoiceVerifyCodeSenderResult.parseFromHTTPResponse()'],['../classqcloudsms__csharp_1_1_tts_voice_sender_result.html#afc6ace2efa12fde819657dba4142c40f',1,'qcloudsms_csharp.TtsVoiceSenderResult.parseFromHTTPResponse()'],['../classqcloudsms__csharp_1_1_voice_file_uploader_result.html#a3e56b8698282083d851324bbad929c74',1,'qcloudsms_csharp.VoiceFileUploaderResult.parseFromHTTPResponse()']]], 4 | ['parsetojson',['parseToJson',['../classqcloudsms__csharp_1_1_sms_result_base.html#a5936f24aee00b69a7f462ce131620f7d',1,'qcloudsms_csharp::SmsResultBase']]], 5 | ['pullcallback',['pullCallback',['../classqcloudsms__csharp_1_1_sms_mobile_status_puller.html#a31e3ea54bca7a25496b7a1108bea5c72',1,'qcloudsms_csharp.SmsMobileStatusPuller.pullCallback()'],['../classqcloudsms__csharp_1_1_sms_status_puller.html#a48530deaa1a8c6583998b91ca863cd3d',1,'qcloudsms_csharp.SmsStatusPuller.pullCallback()']]], 6 | ['pullreply',['pullReply',['../classqcloudsms__csharp_1_1_sms_mobile_status_puller.html#a01432512d23a8dcbd0d30a90c51d3bc6',1,'qcloudsms_csharp.SmsMobileStatusPuller.pullReply()'],['../classqcloudsms__csharp_1_1_sms_status_puller.html#aa8e8b72b82f11d302ab976d7da5e2861',1,'qcloudsms_csharp.SmsStatusPuller.pullReply()']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/search/functions_73.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
载入中...
12 |
13 | 16 |
搜索中...
17 |
未找到
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/search/functions_73.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['send',['send',['../classqcloudsms__csharp_1_1_file_voice_sender.html#a1a595bf3942356bef59a4f3f60f36365',1,'qcloudsms_csharp.FileVoiceSender.send()'],['../classqcloudsms__csharp_1_1_sms_multi_sender.html#a804ff6499a68488a468edbe7b3bd9892',1,'qcloudsms_csharp.SmsMultiSender.send(int type, string nationCode, List< string > phoneNumbers, string msg, string extend, string ext)'],['../classqcloudsms__csharp_1_1_sms_multi_sender.html#a59178a59908cec9d99350809bdcc34b6',1,'qcloudsms_csharp.SmsMultiSender.send(int type, string nationCode, string[] phoneNumbers, string msg, string extend, string ext)'],['../classqcloudsms__csharp_1_1_sms_single_sender.html#a78fe589301a98304d800f5ca58941bf1',1,'qcloudsms_csharp.SmsSingleSender.send()'],['../classqcloudsms__csharp_1_1_sms_voice_prompt_sender.html#aa244a712782437caea9b0325d83cf8bf',1,'qcloudsms_csharp.SmsVoicePromptSender.send()'],['../classqcloudsms__csharp_1_1_sms_voice_verify_code_sender.html#a991e696ba1fcd6be4a4f327b6aacb59d',1,'qcloudsms_csharp.SmsVoiceVerifyCodeSender.send()'],['../classqcloudsms__csharp_1_1_tts_voice_sender.html#acf9863ffcae675eec1fe12ac4ed516d2',1,'qcloudsms_csharp.TtsVoiceSender.send()']]], 4 | ['sendwithparam',['sendWithParam',['../classqcloudsms__csharp_1_1_sms_multi_sender.html#a784ed4935818efbc52c699440964ffde',1,'qcloudsms_csharp.SmsMultiSender.sendWithParam(string nationCode, List< string > phoneNumbers, int templateId, List< string > parameters, string sign, string extend, string ext)'],['../classqcloudsms__csharp_1_1_sms_multi_sender.html#a49c7bcf9d67d4bb20cae30781c23fb99',1,'qcloudsms_csharp.SmsMultiSender.sendWithParam(string nationCode, string[] phoneNumbers, int templateId, string[] parameters, string sign, string extend, string ext)'],['../classqcloudsms__csharp_1_1_sms_single_sender.html#a647e118ab72bd7de3d3f46d538b580ab',1,'qcloudsms_csharp.SmsSingleSender.sendWithParam()']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/search/functions_75.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
载入中...
12 |
13 | 16 |
搜索中...
17 |
未找到
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/search/functions_75.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['upload',['upload',['../classqcloudsms__csharp_1_1_voice_file_uploader.html#a7d96eef54e4bc2576fcf88b473f04693',1,'qcloudsms_csharp::VoiceFileUploader']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/search/mag_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/search/mag_sel.png -------------------------------------------------------------------------------- /docs/search/namespaces_71.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
载入中...
12 |
13 | 16 |
搜索中...
17 |
未找到
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/search/namespaces_71.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['httpclient',['httpclient',['../namespaceqcloudsms__csharp_1_1httpclient.html',1,'qcloudsms_csharp']]], 4 | ['json',['json',['../namespaceqcloudsms__csharp_1_1json.html',1,'qcloudsms_csharp']]], 5 | ['qcloudsms_5fcsharp',['qcloudsms_csharp',['../namespaceqcloudsms__csharp.html',1,'']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/search/nomatches.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
未找到
10 |
11 | 12 | 13 | -------------------------------------------------------------------------------- /docs/search/search.css: -------------------------------------------------------------------------------- 1 | /*---------------- Search Box */ 2 | 3 | #FSearchBox { 4 | float: left; 5 | } 6 | 7 | #MSearchBox { 8 | white-space : nowrap; 9 | position: absolute; 10 | float: none; 11 | display: inline; 12 | margin-top: 8px; 13 | right: 0px; 14 | width: 170px; 15 | z-index: 102; 16 | background-color: white; 17 | } 18 | 19 | #MSearchBox .left 20 | { 21 | display:block; 22 | position:absolute; 23 | left:10px; 24 | width:20px; 25 | height:19px; 26 | background:url('search_l.png') no-repeat; 27 | background-position:right; 28 | } 29 | 30 | #MSearchSelect { 31 | display:block; 32 | position:absolute; 33 | width:20px; 34 | height:19px; 35 | } 36 | 37 | .left #MSearchSelect { 38 | left:4px; 39 | } 40 | 41 | .right #MSearchSelect { 42 | right:5px; 43 | } 44 | 45 | #MSearchField { 46 | display:block; 47 | position:absolute; 48 | height:19px; 49 | background:url('search_m.png') repeat-x; 50 | border:none; 51 | width:111px; 52 | margin-left:20px; 53 | padding-left:4px; 54 | color: #909090; 55 | outline: none; 56 | font: 9pt Arial, Verdana, sans-serif; 57 | } 58 | 59 | #FSearchBox #MSearchField { 60 | margin-left:15px; 61 | } 62 | 63 | #MSearchBox .right { 64 | display:block; 65 | position:absolute; 66 | right:10px; 67 | top:0px; 68 | width:20px; 69 | height:19px; 70 | background:url('search_r.png') no-repeat; 71 | background-position:left; 72 | } 73 | 74 | #MSearchClose { 75 | display: none; 76 | position: absolute; 77 | top: 4px; 78 | background : none; 79 | border: none; 80 | margin: 0px 4px 0px 0px; 81 | padding: 0px 0px; 82 | outline: none; 83 | } 84 | 85 | .left #MSearchClose { 86 | left: 6px; 87 | } 88 | 89 | .right #MSearchClose { 90 | right: 2px; 91 | } 92 | 93 | .MSearchBoxActive #MSearchField { 94 | color: #000000; 95 | } 96 | 97 | /*---------------- Search filter selection */ 98 | 99 | #MSearchSelectWindow { 100 | display: none; 101 | position: absolute; 102 | left: 0; top: 0; 103 | border: 1px solid #90A5CE; 104 | background-color: #F9FAFC; 105 | z-index: 1; 106 | padding-top: 4px; 107 | padding-bottom: 4px; 108 | -moz-border-radius: 4px; 109 | -webkit-border-top-left-radius: 4px; 110 | -webkit-border-top-right-radius: 4px; 111 | -webkit-border-bottom-left-radius: 4px; 112 | -webkit-border-bottom-right-radius: 4px; 113 | -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); 114 | } 115 | 116 | .SelectItem { 117 | font: 8pt Arial, Verdana, sans-serif; 118 | padding-left: 2px; 119 | padding-right: 12px; 120 | border: 0px; 121 | } 122 | 123 | span.SelectionMark { 124 | margin-right: 4px; 125 | font-family: monospace; 126 | outline-style: none; 127 | text-decoration: none; 128 | } 129 | 130 | a.SelectItem { 131 | display: block; 132 | outline-style: none; 133 | color: #000000; 134 | text-decoration: none; 135 | padding-left: 6px; 136 | padding-right: 12px; 137 | } 138 | 139 | a.SelectItem:focus, 140 | a.SelectItem:active { 141 | color: #000000; 142 | outline-style: none; 143 | text-decoration: none; 144 | } 145 | 146 | a.SelectItem:hover { 147 | color: #FFFFFF; 148 | background-color: #3D578C; 149 | outline-style: none; 150 | text-decoration: none; 151 | cursor: pointer; 152 | display: block; 153 | } 154 | 155 | /*---------------- Search results window */ 156 | 157 | iframe#MSearchResults { 158 | width: 60ex; 159 | height: 15em; 160 | } 161 | 162 | #MSearchResultsWindow { 163 | display: none; 164 | position: absolute; 165 | left: 0; top: 0; 166 | border: 1px solid #000; 167 | background-color: #EEF1F7; 168 | } 169 | 170 | /* ----------------------------------- */ 171 | 172 | 173 | #SRIndex { 174 | clear:both; 175 | padding-bottom: 15px; 176 | } 177 | 178 | .SREntry { 179 | font-size: 10pt; 180 | padding-left: 1ex; 181 | } 182 | 183 | .SRPage .SREntry { 184 | font-size: 8pt; 185 | padding: 1px 5px; 186 | } 187 | 188 | body.SRPage { 189 | margin: 5px 2px; 190 | } 191 | 192 | .SRChildren { 193 | padding-left: 3ex; padding-bottom: .5em 194 | } 195 | 196 | .SRPage .SRChildren { 197 | display: none; 198 | } 199 | 200 | .SRSymbol { 201 | font-weight: bold; 202 | color: #425E97; 203 | font-family: Arial, Verdana, sans-serif; 204 | text-decoration: none; 205 | outline: none; 206 | } 207 | 208 | a.SRScope { 209 | display: block; 210 | color: #425E97; 211 | font-family: Arial, Verdana, sans-serif; 212 | text-decoration: none; 213 | outline: none; 214 | } 215 | 216 | a.SRSymbol:focus, a.SRSymbol:active, 217 | a.SRScope:focus, a.SRScope:active { 218 | text-decoration: underline; 219 | } 220 | 221 | span.SRScope { 222 | padding-left: 4px; 223 | } 224 | 225 | .SRPage .SRStatus { 226 | padding: 2px 5px; 227 | font-size: 8pt; 228 | font-style: italic; 229 | } 230 | 231 | .SRResult { 232 | display: none; 233 | } 234 | 235 | DIV.searchresults { 236 | margin-left: 10px; 237 | margin-right: 10px; 238 | } 239 | 240 | /*---------------- External search page results */ 241 | 242 | .searchresult { 243 | background-color: #F0F3F8; 244 | } 245 | 246 | .pages b { 247 | color: white; 248 | padding: 5px 5px 3px 5px; 249 | background-image: url("../tab_a.png"); 250 | background-repeat: repeat-x; 251 | text-shadow: 0 1px 1px #000000; 252 | } 253 | 254 | .pages { 255 | line-height: 17px; 256 | margin-left: 4px; 257 | text-decoration: none; 258 | } 259 | 260 | .hl { 261 | font-weight: bold; 262 | } 263 | 264 | #searchresults { 265 | margin-bottom: 20px; 266 | } 267 | 268 | .searchpages { 269 | margin-top: 10px; 270 | } 271 | 272 | -------------------------------------------------------------------------------- /docs/search/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/search/search.png -------------------------------------------------------------------------------- /docs/search/search_l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/search/search_l.png -------------------------------------------------------------------------------- /docs/search/search_m.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/search/search_m.png -------------------------------------------------------------------------------- /docs/search/search_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/search/search_r.png -------------------------------------------------------------------------------- /docs/sync_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/sync_off.png -------------------------------------------------------------------------------- /docs/sync_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/sync_on.png -------------------------------------------------------------------------------- /docs/tab_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/tab_a.png -------------------------------------------------------------------------------- /docs/tab_b.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/tab_b.gif -------------------------------------------------------------------------------- /docs/tab_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/tab_b.png -------------------------------------------------------------------------------- /docs/tab_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/tab_h.png -------------------------------------------------------------------------------- /docs/tab_l.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/tab_l.gif -------------------------------------------------------------------------------- /docs/tab_r.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/tab_r.gif -------------------------------------------------------------------------------- /docs/tab_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcloudsms/qcloudsms_csharp/3d946b460ed137ee21705b1c070361bd75ae5ae5/docs/tab_s.png -------------------------------------------------------------------------------- /docs/tabs.css: -------------------------------------------------------------------------------- 1 | .tabs, .tabs2, .tabs3 { 2 | background-image: url('tab_b.png'); 3 | width: 100%; 4 | z-index: 101; 5 | font-size: 13px; 6 | font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; 7 | } 8 | 9 | .tabs2 { 10 | font-size: 10px; 11 | } 12 | .tabs3 { 13 | font-size: 9px; 14 | } 15 | 16 | .tablist { 17 | margin: 0; 18 | padding: 0; 19 | display: table; 20 | } 21 | 22 | .tablist li { 23 | float: left; 24 | display: table-cell; 25 | background-image: url('tab_b.png'); 26 | line-height: 36px; 27 | list-style: none; 28 | } 29 | 30 | .tablist a { 31 | display: block; 32 | padding: 0 20px; 33 | font-weight: bold; 34 | background-image:url('tab_s.png'); 35 | background-repeat:no-repeat; 36 | background-position:right; 37 | color: #283A5D; 38 | text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); 39 | text-decoration: none; 40 | outline: none; 41 | } 42 | 43 | .tabs3 .tablist a { 44 | padding: 0 10px; 45 | } 46 | 47 | .tablist a:hover { 48 | background-image: url('tab_h.png'); 49 | background-repeat:repeat-x; 50 | color: #fff; 51 | text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); 52 | text-decoration: none; 53 | } 54 | 55 | .tablist li.current a { 56 | background-image: url('tab_a.png'); 57 | background-repeat:repeat-x; 58 | color: #fff; 59 | text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); 60 | } 61 | -------------------------------------------------------------------------------- /gendoc.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | doxygen ./doxygen.conf 4 | -------------------------------------------------------------------------------- /qcloudsms_csharp.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | netstandard2.0;net461;net451;net452;net40;net471;net47; 4 | qcloud.qcloudsms_csharp 5 | 0.1.6 6 | qcloudsms 7 | qcloudsms 8 | qcloudsms c# sdk 9 | false 10 | The first release version of qcloudsms c# sdk. 11 | Copyright 2017 (c) Tencent Cloud. All Rights Reserved. 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /qcloudsms_csharp.nuspec: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $id$ 5 | $version$ 6 | $title$ 7 | $author$ 8 | $author$ 9 | https://opensource.org/licenses/MIT 10 | https://github.com/qcloudsms/qcloudsms_py 11 | https://avatars2.githubusercontent.com/u/20947692 12 | false 13 | qcloudsms c# sdk 14 | The first release version of qcloudsms c# sdk. 15 | Copyright 2017 (c) Tencent Cloud. All Rights Reserved. 16 | qcloud sms qcloudsms qcloudsms_csharp 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/FileVoiceSender.cs: -------------------------------------------------------------------------------- 1 | using qcloudsms_csharp.httpclient; 2 | using qcloudsms_csharp.json; 3 | 4 | using System; 5 | 6 | 7 | namespace qcloudsms_csharp 8 | { 9 | public class FileVoiceSender : SmsBase 10 | { 11 | private string url = "https://cloud.tim.qq.com/v5/tlsvoicesvr/sendfvoice"; 12 | 13 | public FileVoiceSender(int appid, string appkey) : base(appid, appkey, new DefaultHTTPClient()) 14 | { } 15 | 16 | public FileVoiceSender(int appid, string appkey, IHTTPClient httpclient) : base(appid, appkey, httpclient) 17 | { } 18 | 19 | /// 20 | /// Send a file voice. 21 | /// 22 | /// nation dialing code, e.g. China is 86, USA is 1 23 | /// phone number 24 | /// voice file fid 25 | /// playtimes, optional, max is 3, default is 2 26 | /// ext field, content will be returned by server as it is 27 | /// FileVoiceSenderResult 28 | public FileVoiceSenderResult send(string nationCode, string phoneNumber, string fid, 29 | int playtimes, string ext) 30 | { 31 | long random = SmsSenderUtil.getRandom(); 32 | long now = SmsSenderUtil.getCurrentTime(); 33 | JSONObjectBuilder body = new JSONObjectBuilder() 34 | .Put("tel", (new JSONObjectBuilder()).Put("nationcode", nationCode).Put("mobile", phoneNumber).Build()) 35 | .Put("fid", fid) 36 | .Put("playtimes", playtimes) 37 | .Put("sig", SmsSenderUtil.calculateSignature(this.appkey, random, now, phoneNumber)) 38 | .Put("time", now) 39 | .Put("ext", !String.IsNullOrEmpty(ext) ? ext : ""); 40 | 41 | HTTPRequest req = new HTTPRequest(HTTPMethod.POST, this.url) 42 | .addHeader("Content-Type", "application/json") 43 | .addQueryParameter("sdkappid", this.appid) 44 | .addQueryParameter("random", random) 45 | .setConnectionTimeout(60 * 1000) 46 | .setRequestTimeout(60 * 1000) 47 | .setBody(body.Build().ToString()); 48 | 49 | // May throw HttpRequestException 50 | HTTPResponse res = httpclient.fetch(req); 51 | 52 | // May throw HTTPException 53 | handleError(res); 54 | 55 | FileVoiceSenderResult result = new FileVoiceSenderResult(); 56 | // May throw JSONException 57 | result.parseFromHTTPResponse(res); 58 | 59 | return result; 60 | } 61 | } 62 | } -------------------------------------------------------------------------------- /src/FileVoiceSenderResult.cs: -------------------------------------------------------------------------------- 1 | using qcloudsms_csharp.httpclient; 2 | using qcloudsms_csharp.json; 3 | 4 | using Newtonsoft.Json; 5 | using Newtonsoft.Json.Linq; 6 | 7 | using System; 8 | 9 | 10 | namespace qcloudsms_csharp 11 | { 12 | public class FileVoiceSenderResult : SmsResultBase 13 | { 14 | public int result; 15 | public string errMsg; 16 | public string ext; 17 | public string callid; 18 | 19 | public FileVoiceSenderResult() 20 | { 21 | this.errMsg = ""; 22 | this.ext = ""; 23 | this.callid = ""; 24 | } 25 | 26 | public override void parseFromHTTPResponse(HTTPResponse response) 27 | { 28 | JObject json = parseToJson(response); 29 | 30 | try 31 | { 32 | result = json.GetValue("result").Value(); 33 | errMsg = json.GetValue("errmsg").Value(); 34 | } 35 | catch (ArgumentNullException e) 36 | { 37 | throw new JSONException(String.Format("res: {0}, exception: {1}", response.body, e.Message)); 38 | } 39 | 40 | if (json["ext"] != null) 41 | { 42 | ext = json.GetValue("ext").Value(); 43 | } 44 | if (json["callid"] != null) 45 | { 46 | callid = json.GetValue("callid").Value(); 47 | } 48 | 49 | } 50 | } 51 | } -------------------------------------------------------------------------------- /src/SmsBase.cs: -------------------------------------------------------------------------------- 1 | using qcloudsms_csharp.httpclient; 2 | 3 | using System; 4 | 5 | 6 | namespace qcloudsms_csharp 7 | { 8 | public class SmsBase 9 | { 10 | protected int appid { get; } 11 | protected string appkey { get; } 12 | protected IHTTPClient httpclient { get; set; } 13 | 14 | public SmsBase(int appid, string appkey, IHTTPClient httpclient) 15 | { 16 | this.appid = appid; 17 | this.appkey = appkey; 18 | this.httpclient = httpclient; 19 | } 20 | 21 | /** 22 | * Handle http status error 23 | * 24 | * @param response raw http response 25 | * @return response raw http response 26 | * @throws HTTPException http status exception 27 | */ 28 | public HTTPResponse handleError(HTTPResponse response) 29 | { 30 | if (response.statusCode < 200 || response.statusCode >= 300) 31 | { 32 | throw new HTTPException(response.statusCode, response.reason); 33 | } 34 | return response; 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /src/SmsMobileStatusPuller.cs: -------------------------------------------------------------------------------- 1 | using qcloudsms_csharp.httpclient; 2 | using qcloudsms_csharp.json; 3 | 4 | 5 | namespace qcloudsms_csharp 6 | { 7 | public class SmsMobileStatusPuller : SmsBase 8 | { 9 | private string url = "https://yun.tim.qq.com/v5/tlssmssvr/pullstatus4mobile"; 10 | 11 | public SmsMobileStatusPuller(int appid, string appkey) 12 | : base(appid, appkey, new DefaultHTTPClient()) 13 | { } 14 | 15 | public SmsMobileStatusPuller(int appid, string appkey, IHTTPClient httpclient) 16 | : base(appid, appkey, httpclient) 17 | { } 18 | 19 | private HTTPResponse pull(int type, string nationCode, string mobile, long beginTime, 20 | long endTime, int max) 21 | { 22 | long random = SmsSenderUtil.getRandom(); 23 | long now = SmsSenderUtil.getCurrentTime(); 24 | JSONObjectBuilder body = new JSONObjectBuilder(); 25 | body.Put("sig", SmsSenderUtil.calculateSignature(this.appkey, random, now)) 26 | .Put("type", type) 27 | .Put("time", now) 28 | .Put("max", max) 29 | .Put("begin_time", beginTime) 30 | .Put("end_time", endTime) 31 | .Put("nationcode", nationCode) 32 | .Put("mobile", mobile); 33 | 34 | HTTPRequest req = new HTTPRequest(HTTPMethod.POST, this.url) 35 | .addHeader("Conetent-Type", "application/json") 36 | .addQueryParameter("sdkappid", this.appid) 37 | .addQueryParameter("random", random) 38 | .setConnectionTimeout(60 * 1000) 39 | .setRequestTimeout(60 * 10000) 40 | .setBody(body.Build().ToString()); 41 | 42 | // May throw HttpRequestException 43 | HTTPResponse res = httpclient.fetch(req); 44 | 45 | // May throw HTTPException 46 | handleError(res); 47 | 48 | return res; 49 | } 50 | 51 | /// 52 | /// Pull SMS messages status for single mobile. 53 | /// 54 | /// nation dialing code, e.g. China is 86, USA is 1 55 | /// mobile number 56 | /// begin time, unix timestamp 57 | /// begin time, unix timestamp 58 | /// maximum number of message status 59 | /// SmsStatusPullCallbackResult 60 | public SmsStatusPullCallbackResult pullCallback(string nationCode, string mobile, 61 | long beginTime, long endTime, int max) 62 | { 63 | // May throw HttpRequestException 64 | HTTPResponse res = pull(0, nationCode, mobile, beginTime, endTime, max); 65 | 66 | SmsStatusPullCallbackResult result = new SmsStatusPullCallbackResult(); 67 | // May throw JSONException 68 | result.parseFromHTTPResponse(res); 69 | 70 | return result; 71 | } 72 | 73 | /// 74 | /// Pull reply SMS message status for single mobile. 75 | /// 76 | /// nation dialing code, e.g. China is 86, USA is 1 77 | /// mobile number 78 | /// begin time, unix timestamp 79 | /// end time, unix timestamp 80 | /// maximum number of message status 81 | /// SmsStatusPullReplyResult 82 | public SmsStatusPullReplyResult pullReply(string nationCode, string mobile, 83 | long beginTime, long endTime, int max) 84 | { 85 | // May throw HttpRequestException 86 | HTTPResponse res = pull(1, nationCode, mobile, beginTime, endTime, max); 87 | 88 | SmsStatusPullReplyResult result = new SmsStatusPullReplyResult(); 89 | // May throw JSONException 90 | result.parseFromHTTPResponse(res); 91 | 92 | return result; 93 | } 94 | } 95 | } -------------------------------------------------------------------------------- /src/SmsMultiSenderResult.cs: -------------------------------------------------------------------------------- 1 | using qcloudsms_csharp.httpclient; 2 | using qcloudsms_csharp.json; 3 | 4 | using Newtonsoft.Json; 5 | using Newtonsoft.Json.Linq; 6 | 7 | using System; 8 | using System.Collections.Generic; 9 | 10 | 11 | namespace qcloudsms_csharp 12 | { 13 | public class SmsMultiSenderResult : SmsResultBase 14 | { 15 | public class Detail 16 | { 17 | public int result; 18 | public string errmsg = ""; 19 | public string mobile = ""; 20 | public string nationcode = ""; 21 | public string sid = ""; 22 | public int fee; 23 | 24 | public override string ToString() 25 | { 26 | return JsonConvert.SerializeObject(this); 27 | } 28 | 29 | public Detail parse(JObject json) 30 | { 31 | try 32 | { 33 | result = json.GetValue("result").Value(); 34 | errmsg = json.GetValue("errmsg").Value(); 35 | } 36 | catch (ArgumentNullException e) 37 | { 38 | throw new JSONException(String.Format("json: {0}, exception: {1}", json, e.Message)); 39 | } 40 | 41 | if (json["mobile"] != null) 42 | { 43 | mobile = json.GetValue("mobile").Value(); 44 | } 45 | if (json["nationcode"] != null) 46 | { 47 | nationcode = json.GetValue("nationcode").Value(); 48 | } 49 | if (json["sid"] != null) 50 | { 51 | sid = json.GetValue("sid").Value(); 52 | } 53 | if (json["fee"] != null) 54 | { 55 | fee = json.GetValue("fee").Value(); 56 | } 57 | 58 | return this; 59 | } 60 | } 61 | 62 | public int result; 63 | public string errMsg; 64 | public string ext; 65 | public List details; 66 | 67 | public SmsMultiSenderResult() 68 | { 69 | this.errMsg = ""; 70 | this.ext = ""; 71 | this.details = new List(); 72 | } 73 | 74 | public override void parseFromHTTPResponse(HTTPResponse response) 75 | { 76 | JObject json = parseToJson(response); 77 | 78 | try 79 | { 80 | result = json.GetValue("result").Value(); 81 | errMsg = json.GetValue("errmsg").Value(); 82 | } 83 | catch (ArgumentNullException e) 84 | { 85 | throw new JSONException(String.Format("res: {0}, exception: {1}", response.body, e.Message)); 86 | } 87 | 88 | if (json["ext"] != null) 89 | { 90 | ext = json.GetValue("ext").Value(); 91 | } 92 | if (json["detail"] != null) 93 | { 94 | foreach (JObject item in json["detail"]) 95 | { 96 | details.Add((new Detail()).parse(item)); 97 | } 98 | } 99 | } 100 | } 101 | } -------------------------------------------------------------------------------- /src/SmsResultBase.cs: -------------------------------------------------------------------------------- 1 | using qcloudsms_csharp.httpclient; 2 | using qcloudsms_csharp.json; 3 | 4 | using Newtonsoft.Json.Linq; 5 | using Newtonsoft.Json; 6 | 7 | 8 | namespace qcloudsms_csharp 9 | { 10 | public abstract class SmsResultBase 11 | { 12 | protected HTTPResponse response; 13 | 14 | /** 15 | * Parse result from HTTPResponse 16 | * 17 | * @param response HTTP response from api return 18 | * @return SmsResultbase 19 | * @throws JSONException json parse exception 20 | */ 21 | public abstract void parseFromHTTPResponse(HTTPResponse response); 22 | 23 | /** 24 | * Parse HTTP response to JSONObject 25 | * 26 | * @param response HTTP response 27 | * @return JSONObject 28 | * @throws JSONException json parse exception 29 | */ 30 | public JObject parseToJson(HTTPResponse response) 31 | { 32 | // Set raw response 33 | this.response = response; 34 | try 35 | { 36 | return JObject.Parse(response.body); 37 | } 38 | catch (JsonReaderException e) 39 | { 40 | throw new JSONException(e.Message); 41 | } 42 | } 43 | 44 | /** 45 | * Get raw response 46 | * 47 | * @return HTTPResponse 48 | */ 49 | public HTTPResponse getResponse() 50 | { 51 | return response; 52 | } 53 | 54 | public override string ToString() 55 | { 56 | return response.body; 57 | } 58 | } 59 | } -------------------------------------------------------------------------------- /src/SmsSenderUtil.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Text; 3 | using System.Security.Cryptography; 4 | 5 | namespace qcloudsms_csharp 6 | { 7 | public static class SmsSenderUtil 8 | { 9 | public static long getCurrentTime() 10 | { 11 | return (long)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds; 12 | } 13 | 14 | public static long getRandom() 15 | { 16 | return (new Random((int)SmsSenderUtil.getCurrentTime())).Next() % 900000L + 100000L; 17 | } 18 | 19 | public static string calculateSignature(string appkey, long random, long time, 20 | string phoneNumber) 21 | { 22 | StringBuilder builder = new StringBuilder("appkey=") 23 | .Append(appkey) 24 | .Append("&random=") 25 | .Append(random) 26 | .Append("&time=") 27 | .Append(time) 28 | .Append("&mobile=") 29 | .Append(phoneNumber); 30 | 31 | return sha256(builder.ToString()); 32 | } 33 | 34 | public static string calculateSignature(string appkey, long random, long time, 35 | string[] phoneNumbers) 36 | { 37 | StringBuilder builder = new StringBuilder("appkey=") 38 | .Append(appkey) 39 | .Append("&random=") 40 | .Append(random) 41 | .Append("&time=") 42 | .Append(time) 43 | .Append("&mobile="); 44 | 45 | if (phoneNumbers.Length > 0) 46 | { 47 | builder.Append(phoneNumbers[0]); 48 | for (int i = 1; i < phoneNumbers.Length; i++) 49 | { 50 | builder.Append(","); 51 | builder.Append(phoneNumbers[i]); 52 | } 53 | } 54 | 55 | return sha256(builder.ToString()); 56 | } 57 | 58 | public static string calculateSignature(string appkey, long random, long time) 59 | { 60 | StringBuilder builder = new StringBuilder("appkey=") 61 | .Append(appkey) 62 | .Append("&random=") 63 | .Append(random) 64 | .Append("&time=") 65 | .Append(time); 66 | 67 | return sha256(builder.ToString()); 68 | } 69 | 70 | public static string calculateAuth(String appkey, long random, long time, String fileSha1Sum) 71 | { 72 | StringBuilder builder = new StringBuilder("appkey=") 73 | .Append(appkey) 74 | .Append("&random=") 75 | .Append(random) 76 | .Append("&time=") 77 | .Append(time) 78 | .Append("&content-sha1=") 79 | .Append(fileSha1Sum); 80 | 81 | return sha256(builder.ToString()); 82 | } 83 | 84 | public static String sha1sum(byte[] bytes) 85 | { 86 | byte[] hash = SHA1Managed.Create().ComputeHash(bytes); 87 | 88 | StringBuilder builder = new StringBuilder(); 89 | for (int i = 0; i < hash.Length; i++) 90 | { 91 | builder.Append(hash[i].ToString("X2")); 92 | } 93 | return builder.ToString().ToLower(); 94 | } 95 | 96 | private static string sha256(string rawString) 97 | { 98 | byte[] bytes = Encoding.UTF8.GetBytes(rawString); 99 | byte[] hash = SHA256Managed.Create().ComputeHash(bytes); 100 | 101 | StringBuilder builder = new StringBuilder(); 102 | for (int i = 0; i < hash.Length; i++) 103 | { 104 | builder.Append(hash[i].ToString("X2")); 105 | } 106 | return builder.ToString().ToLower(); 107 | } 108 | } 109 | } -------------------------------------------------------------------------------- /src/SmsSingleSender.cs: -------------------------------------------------------------------------------- 1 | using qcloudsms_csharp.httpclient; 2 | using qcloudsms_csharp.json; 3 | 4 | using Newtonsoft.Json.Linq; 5 | 6 | using System; 7 | using System.Net.Http; 8 | 9 | 10 | namespace qcloudsms_csharp 11 | { 12 | public class SmsSingleSender : SmsBase 13 | { 14 | private string url = "https://yun.tim.qq.com/v5/tlssmssvr/sendsms"; 15 | 16 | public SmsSingleSender(int appid, string appkey) 17 | : base(appid, appkey, new DefaultHTTPClient()) 18 | { } 19 | 20 | public SmsSingleSender(int appid, string appkey, IHTTPClient httpclient) 21 | : base(appid, appkey, httpclient) 22 | { } 23 | 24 | /// 25 | /// Send single SMS message. 26 | /// 27 | /// SMS message type, Enum{0: normal SMS, 1: marketing SMS} 28 | /// nation dialing code, e.g. China is 86, USA is 1 29 | /// phone number 30 | /// SMS message content< /param> 31 | /// extend field, default is empty string 32 | /// ext field, content will be returned by server as it is 33 | /// SmsSingleSenderResult 34 | public SmsSingleSenderResult send(int type, string nationCode, string phoneNumber, 35 | string msg, string extend, string ext) 36 | { 37 | long random = SmsSenderUtil.getRandom(); 38 | long now = SmsSenderUtil.getCurrentTime(); 39 | JSONObjectBuilder body = new JSONObjectBuilder() 40 | .Put("tel", (new JSONObjectBuilder()).Put("nationcode", nationCode).Put("mobile", phoneNumber).Build()) 41 | .Put("type", type) 42 | .Put("msg", msg) 43 | .Put("sig", SmsSenderUtil.calculateSignature(this.appkey, random, now, phoneNumber)) 44 | .Put("time", now) 45 | .Put("extend", !String.IsNullOrEmpty(extend) ? extend : "") 46 | .Put("ext", !String.IsNullOrEmpty(ext) ? ext : ""); 47 | 48 | HTTPRequest req = new HTTPRequest(HTTPMethod.POST, this.url) 49 | .addHeader("Conetent-Type", "application/json") 50 | .addQueryParameter("sdkappid", this.appid) 51 | .addQueryParameter("random", random) 52 | .setConnectionTimeout(60 * 1000) 53 | .setRequestTimeout(60 * 1000) 54 | .setBody(body.Build().ToString()); 55 | 56 | // May throw HttpRequestException 57 | HTTPResponse res = httpclient.fetch(req); 58 | 59 | // May throw HTTPException 60 | handleError(res); 61 | 62 | SmsSingleSenderResult result = new SmsSingleSenderResult(); 63 | // May throw JSONException 64 | result.parseFromHTTPResponse(res); 65 | 66 | return result; 67 | } 68 | 69 | /// 70 | /// Send single SMS message with template paramters. 71 | /// 72 | /// nation dialing code, e.g. China is 86, USA is 1 73 | /// phone number 74 | /// template id 75 | /// template parameters 76 | /// Sms user sign 77 | /// extend field, default is empty string 78 | /// ext field, content will be returned by server as it is 79 | /// SmsSingleSenderResult 80 | public SmsSingleSenderResult sendWithParam(string nationCode, string phoneNumber, int templateId, 81 | string[] parameters, string sign, string extend, string ext) 82 | { 83 | 84 | long random = SmsSenderUtil.getRandom(); 85 | long now = SmsSenderUtil.getCurrentTime(); 86 | 87 | JSONObjectBuilder body = new JSONObjectBuilder() 88 | .Put("tel", (new JSONObjectBuilder()).Put("nationcode", nationCode).Put("mobile", phoneNumber).Build()) 89 | .Put("sig", SmsSenderUtil.calculateSignature(appkey, random, now, phoneNumber)) 90 | .Put("tpl_id", templateId) 91 | .PutArray("params", parameters) 92 | .Put("sign", !String.IsNullOrEmpty(sign) ? sign : "") 93 | .Put("time", now) 94 | .Put("extend", !String.IsNullOrEmpty(extend) ? extend : "") 95 | .Put("ext", !String.IsNullOrEmpty(ext) ? ext : ""); 96 | 97 | HTTPRequest req = new HTTPRequest(HTTPMethod.POST, this.url) 98 | .addHeader("Conetent-Type", "application/json") 99 | .addQueryParameter("sdkappid", this.appid) 100 | .addQueryParameter("random", random) 101 | .setConnectionTimeout(60 * 1000) 102 | .setRequestTimeout(60 * 1000) 103 | .setBody(body.Build().ToString()); 104 | 105 | // May throw HttpRequestException 106 | HTTPResponse res = httpclient.fetch(req); 107 | 108 | // May throw HTTPException 109 | handleError(res); 110 | 111 | SmsSingleSenderResult result = new SmsSingleSenderResult(); 112 | // May throw JSONException 113 | result.parseFromHTTPResponse(res); 114 | 115 | return result; 116 | } 117 | } 118 | } 119 | -------------------------------------------------------------------------------- /src/SmsSingleSenderResult.cs: -------------------------------------------------------------------------------- 1 | using qcloudsms_csharp.httpclient; 2 | using qcloudsms_csharp.json; 3 | 4 | using Newtonsoft.Json; 5 | using Newtonsoft.Json.Linq; 6 | 7 | using System; 8 | 9 | 10 | namespace qcloudsms_csharp 11 | { 12 | public class SmsSingleSenderResult : SmsResultBase 13 | { 14 | public int result; 15 | public string errMsg; 16 | public string ext; 17 | public string sid; 18 | public int fee; 19 | 20 | public SmsSingleSenderResult() 21 | { 22 | this.errMsg = ""; 23 | this.ext = ""; 24 | this.sid = ""; 25 | this.fee = 0; 26 | } 27 | 28 | public override void parseFromHTTPResponse(HTTPResponse response) 29 | { 30 | JObject json = parseToJson(response); 31 | 32 | try 33 | { 34 | result = json.GetValue("result").Value(); 35 | errMsg = json.GetValue("errmsg").Value(); 36 | } 37 | catch (ArgumentNullException e) 38 | { 39 | throw new JSONException(String.Format("res: {0}, exception: {1}", response.body, e.Message)); 40 | } 41 | 42 | if (json["ext"] != null) 43 | { 44 | ext = json.GetValue("ext").Value(); 45 | } 46 | if (json["sid"] != null) 47 | { 48 | sid = json.GetValue("sid").Value(); 49 | } 50 | if (json["fee"] != null) 51 | { 52 | fee = json.GetValue("fee").Value(); 53 | } 54 | 55 | } 56 | } 57 | } -------------------------------------------------------------------------------- /src/SmsStatusPullCallbackResult.cs: -------------------------------------------------------------------------------- 1 | using qcloudsms_csharp.httpclient; 2 | using qcloudsms_csharp.json; 3 | 4 | using Newtonsoft.Json; 5 | using Newtonsoft.Json.Linq; 6 | 7 | using System; 8 | using System.Collections.Generic; 9 | 10 | 11 | namespace qcloudsms_csharp 12 | { 13 | public class SmsStatusPullCallbackResult : SmsResultBase 14 | { 15 | public class Callback 16 | { 17 | public string user_receive_time; 18 | public string nationcode; 19 | public string mobile; 20 | public string report_status; 21 | public string errmsg; 22 | public string description; 23 | public string sid; 24 | 25 | public override string ToString() 26 | { 27 | return JsonConvert.SerializeObject(this); 28 | } 29 | 30 | public Callback parse(JObject json) 31 | { 32 | try 33 | { 34 | user_receive_time = json.GetValue("user_receive_time").Value(); 35 | nationcode = json.GetValue("nationcode").Value(); 36 | mobile = json.GetValue("mobile").Value(); 37 | report_status = json.GetValue("report_status").Value(); 38 | errmsg = json.GetValue("errmsg").Value(); 39 | description = json.GetValue("description").Value(); 40 | sid = json.GetValue("sid").Value(); 41 | } 42 | catch (ArgumentNullException e) 43 | { 44 | throw new JSONException(String.Format("json: {0}, exception: {1}", json, e.Message)); 45 | } 46 | 47 | return this; 48 | } 49 | } 50 | 51 | public int result; 52 | public string errMsg; 53 | public int count; 54 | public List callbacks; 55 | 56 | public SmsStatusPullCallbackResult() 57 | { 58 | this.errMsg = ""; 59 | this.count = 0; 60 | this.callbacks = new List(); 61 | } 62 | 63 | public override void parseFromHTTPResponse(HTTPResponse response) 64 | { 65 | JObject json = parseToJson(response); 66 | 67 | try 68 | { 69 | result = json.GetValue("result").Value(); 70 | errMsg = json.GetValue("errmsg").Value(); 71 | } 72 | catch (ArgumentNullException e) 73 | { 74 | throw new JSONException(String.Format("res: {0}, exception: {1}", response.body, e.Message)); 75 | } 76 | 77 | if (json["count"] != null) 78 | { 79 | count = json.GetValue("count").Value(); 80 | } 81 | if (json["data"] != null) 82 | { 83 | foreach (JObject item in json["data"]) 84 | { 85 | callbacks.Add((new Callback()).parse(item)); 86 | } 87 | } 88 | } 89 | } 90 | } -------------------------------------------------------------------------------- /src/SmsStatusPullReplyResult.cs: -------------------------------------------------------------------------------- 1 | using qcloudsms_csharp.httpclient; 2 | using qcloudsms_csharp.json; 3 | 4 | using Newtonsoft.Json; 5 | using Newtonsoft.Json.Linq; 6 | 7 | using System; 8 | using System.Collections.Generic; 9 | 10 | 11 | namespace qcloudsms_csharp 12 | { 13 | public class SmsStatusPullReplyResult : SmsResultBase 14 | { 15 | public class Reply 16 | { 17 | public string extend = ""; 18 | public string nationcode; 19 | public string mobile; 20 | public string text; 21 | public string sign; 22 | public long time; 23 | 24 | public override string ToString() 25 | { 26 | return JsonConvert.SerializeObject(this); 27 | } 28 | 29 | public Reply parse(JObject json) 30 | { 31 | if (json["extend"] != null) 32 | { 33 | extend = json.GetValue("extend").Value(); 34 | } 35 | try 36 | { 37 | nationcode = json.GetValue("nationcode").Value(); 38 | mobile = json.GetValue("mobile").Value(); 39 | text = json.GetValue("text").Value(); 40 | sign = json.GetValue("sign").Value(); 41 | time = json.GetValue("time").Value(); 42 | } 43 | catch (ArgumentNullException e) 44 | { 45 | throw new JSONException(String.Format("json: {0}, exception: {1}", json, e.Message)); 46 | } 47 | 48 | return this; 49 | } 50 | } 51 | 52 | public int result; 53 | public string errMsg; 54 | public int count; 55 | public List replys; 56 | 57 | public SmsStatusPullReplyResult() 58 | { 59 | this.replys = new List(); 60 | } 61 | 62 | public override void parseFromHTTPResponse(HTTPResponse response) 63 | { 64 | JObject json = parseToJson(response); 65 | 66 | try 67 | { 68 | result = json.GetValue("result").Value(); 69 | errMsg = json.GetValue("errmsg").Value(); 70 | } 71 | catch (ArgumentNullException e) 72 | { 73 | throw new JSONException(String.Format("res: {0}, exception: {1}", response.body, e.Message)); 74 | } 75 | 76 | if (json["count"] != null) 77 | { 78 | count = json.GetValue("count").Value(); 79 | } 80 | if (json["data"] != null) 81 | { 82 | foreach (JObject item in json["data"]) 83 | { 84 | replys.Add((new Reply()).parse(item)); 85 | } 86 | } 87 | } 88 | } 89 | } -------------------------------------------------------------------------------- /src/SmsStatusPuller.cs: -------------------------------------------------------------------------------- 1 | using qcloudsms_csharp.httpclient; 2 | using qcloudsms_csharp.json; 3 | 4 | namespace qcloudsms_csharp 5 | { 6 | public class SmsStatusPuller : SmsBase 7 | { 8 | private string url = "https://yun.tim.qq.com/v5/tlssmssvr/pullstatus"; 9 | 10 | public SmsStatusPuller(int appid, string appkey) 11 | : base(appid, appkey, new DefaultHTTPClient()) 12 | { } 13 | 14 | public SmsStatusPuller(int appid, string appkey, IHTTPClient httpclient) 15 | : base(appid, appkey, httpclient) 16 | { } 17 | 18 | private HTTPResponse pull(int type, int max) 19 | { 20 | 21 | long random = SmsSenderUtil.getRandom(); 22 | long now = SmsSenderUtil.getCurrentTime(); 23 | JSONObjectBuilder body = new JSONObjectBuilder() 24 | .Put("sig", SmsSenderUtil.calculateSignature(this.appkey, random, now)) 25 | .Put("time", now) 26 | .Put("type", type) 27 | .Put("max", max); 28 | 29 | HTTPRequest req = new HTTPRequest(HTTPMethod.POST, this.url) 30 | .addHeader("Conetent-Type", "application/json") 31 | .addQueryParameter("sdkappid", this.appid) 32 | .addQueryParameter("random", random) 33 | .setConnectionTimeout(60 * 1000) 34 | .setRequestTimeout(60 * 10000) 35 | .setBody(body.Build().ToString()); 36 | 37 | // May throw HttpRequestException 38 | HTTPResponse res = httpclient.fetch(req); 39 | 40 | // May throw HTTPException 41 | handleError(res); 42 | 43 | return res; 44 | } 45 | 46 | /// 47 | /// Pull callback SMS messages status. 48 | /// 49 | /// maximum number of message status 50 | /// SmsStatusPullCallbackResult 51 | public SmsStatusPullCallbackResult pullCallback(int max) 52 | { 53 | // May throw HttpRequestException 54 | HTTPResponse res = pull(0, max); 55 | 56 | SmsStatusPullCallbackResult result = new SmsStatusPullCallbackResult(); 57 | // May throw JSONException 58 | result.parseFromHTTPResponse(res); 59 | 60 | return result; 61 | } 62 | 63 | 64 | /// 65 | /// Pull reply SMS messages status. 66 | /// 67 | /// maximum number of message status 68 | /// SmsStatusPullReplyResult 69 | public SmsStatusPullReplyResult pullReply(int max) 70 | { 71 | 72 | // May throw HttpRequestException 73 | HTTPResponse res = pull(1, max); 74 | 75 | SmsStatusPullReplyResult result = new SmsStatusPullReplyResult(); 76 | // May throw JSONException 77 | result.parseFromHTTPResponse(res); 78 | 79 | return result; 80 | } 81 | } 82 | } -------------------------------------------------------------------------------- /src/SmsVoicePromptSender.cs: -------------------------------------------------------------------------------- 1 | using qcloudsms_csharp.httpclient; 2 | using qcloudsms_csharp.json; 3 | 4 | using System; 5 | 6 | 7 | namespace qcloudsms_csharp 8 | { 9 | public class SmsVoicePromptSender : SmsBase 10 | { 11 | private string url = "https://cloud.tim.qq.com/v5/tlsvoicesvr/sendvoiceprompt"; 12 | 13 | public SmsVoicePromptSender(int appid, string appkey) : base(appid, appkey, new DefaultHTTPClient()) 14 | { } 15 | 16 | public SmsVoicePromptSender(int appid, string appkey, IHTTPClient httpclient) : base(appid, appkey, httpclient) 17 | { } 18 | 19 | /// 20 | /// Send a voice prompt message. 21 | /// 22 | /// nation dialing code, e.g. China is 86, USA is 1 23 | /// phone number 24 | /// voice prompt type, currently value is 2 25 | /// voice prompt message 26 | /// playtimes, optional, max is 3, default is 2 27 | /// ext field, content will be returned by server as it is 28 | /// SmsVoicePromptSenderResult 29 | public SmsVoicePromptSenderResult send(string nationCode, string phoneNumber, int prompttype, 30 | string msg, int playtimes, string ext) 31 | { 32 | long random = SmsSenderUtil.getRandom(); 33 | long now = SmsSenderUtil.getCurrentTime(); 34 | JSONObjectBuilder body = new JSONObjectBuilder() 35 | .Put("tel", (new JSONObjectBuilder()).Put("nationcode", nationCode).Put("mobile", phoneNumber).Build()) 36 | .Put("prompttype", prompttype) 37 | .Put("promptfile", msg) 38 | .Put("playtimes", playtimes) 39 | .Put("sig", SmsSenderUtil.calculateSignature(this.appkey, random, now, phoneNumber)) 40 | .Put("time", now) 41 | .Put("ext", !String.IsNullOrEmpty(ext) ? ext : ""); 42 | 43 | HTTPRequest req = new HTTPRequest(HTTPMethod.POST, this.url) 44 | .addHeader("Conetent-Type", "application/json") 45 | .addQueryParameter("sdkappid", this.appid) 46 | .addQueryParameter("random", random) 47 | .setConnectionTimeout(60 * 1000) 48 | .setRequestTimeout(60 * 1000) 49 | .setBody(body.Build().ToString()); 50 | 51 | // May throw HttpRequestException 52 | HTTPResponse res = httpclient.fetch(req); 53 | 54 | // May throw HTTPException 55 | handleError(res); 56 | 57 | SmsVoicePromptSenderResult result = new SmsVoicePromptSenderResult(); 58 | // May throw JSONException 59 | result.parseFromHTTPResponse(res); 60 | 61 | return result; 62 | } 63 | } 64 | } -------------------------------------------------------------------------------- /src/SmsVoicePromptSenderResult.cs: -------------------------------------------------------------------------------- 1 | using qcloudsms_csharp.httpclient; 2 | using qcloudsms_csharp.json; 3 | 4 | using Newtonsoft.Json; 5 | using Newtonsoft.Json.Linq; 6 | 7 | using System; 8 | 9 | 10 | namespace qcloudsms_csharp 11 | { 12 | public class SmsVoicePromptSenderResult : SmsResultBase 13 | { 14 | public int result; 15 | public string errMsg; 16 | public string ext; 17 | public string callid; 18 | 19 | public SmsVoicePromptSenderResult() 20 | { 21 | this.errMsg = ""; 22 | this.ext = ""; 23 | this.callid = ""; 24 | } 25 | 26 | public override void parseFromHTTPResponse(HTTPResponse response) 27 | { 28 | JObject json = parseToJson(response); 29 | 30 | try 31 | { 32 | result = json.GetValue("result").Value(); 33 | errMsg = json.GetValue("errmsg").Value(); 34 | } 35 | catch (ArgumentNullException e) 36 | { 37 | throw new JSONException(String.Format("res: {0}, exception: {1}", response.body, e.Message)); 38 | } 39 | 40 | if (json["ext"] != null) 41 | { 42 | ext = json.GetValue("ext").Value(); 43 | } 44 | if (json["callid"] != null) 45 | { 46 | callid = json.GetValue("callid").Value(); 47 | } 48 | 49 | } 50 | } 51 | } -------------------------------------------------------------------------------- /src/SmsVoiceVerifyCodeSender.cs: -------------------------------------------------------------------------------- 1 | using qcloudsms_csharp.httpclient; 2 | using qcloudsms_csharp.json; 3 | 4 | using System; 5 | 6 | 7 | namespace qcloudsms_csharp 8 | { 9 | public class SmsVoiceVerifyCodeSender : SmsBase 10 | { 11 | private String url = "https://cloud.tim.qq.com/v5/tlsvoicesvr/sendvoice"; 12 | 13 | public SmsVoiceVerifyCodeSender(int appid, String appkey) 14 | : base(appid, appkey, new DefaultHTTPClient()) 15 | { } 16 | 17 | public SmsVoiceVerifyCodeSender(int appid, String appkey, IHTTPClient httpclient) 18 | : base(appid, appkey, httpclient) 19 | { } 20 | 21 | /// 22 | /// Send a voice verify code message. 23 | /// 24 | /// nation dialing code, e.g. China is 86, USA is 1 25 | /// phone number 26 | /// voice verify code message 27 | /// playtimes, optional, max is 3, default is 2 28 | /// ext field, content will be returned by server as it is 29 | /// 30 | public SmsVoiceVerifyCodeSenderResult send(String nationCode, String phoneNumber, String msg, 31 | int playtimes, String ext) 32 | { 33 | long random = SmsSenderUtil.getRandom(); 34 | long now = SmsSenderUtil.getCurrentTime(); 35 | JSONObjectBuilder body = new JSONObjectBuilder(); 36 | body.Put("tel", (new JSONObjectBuilder()).Put("nationcode", nationCode).Put("mobile", phoneNumber).Build()) 37 | .Put("msg", msg) 38 | .Put("playtimes", playtimes) 39 | .Put("sig", SmsSenderUtil.calculateSignature(this.appkey, random, now, phoneNumber)) 40 | .Put("time", now) 41 | .Put("ext", !String.IsNullOrEmpty(ext) ? ext : ""); 42 | 43 | HTTPRequest req = new HTTPRequest(HTTPMethod.POST, this.url) 44 | .addHeader("Conetent-Type", "application/json") 45 | .addQueryParameter("sdkappid", this.appid) 46 | .addQueryParameter("random", random) 47 | .setConnectionTimeout(60 * 1000) 48 | .setRequestTimeout(60 * 1000) 49 | .setBody(body.Build().ToString()); 50 | 51 | // May throw HttpRequestException 52 | HTTPResponse res = httpclient.fetch(req); 53 | 54 | // May throw HTTPException 55 | handleError(res); 56 | 57 | SmsVoiceVerifyCodeSenderResult result = new SmsVoiceVerifyCodeSenderResult(); 58 | // May throw JSONException 59 | result.parseFromHTTPResponse(res); 60 | 61 | return result; 62 | } 63 | } 64 | } -------------------------------------------------------------------------------- /src/SmsVoiceVerifyCodeSenderResult.cs: -------------------------------------------------------------------------------- 1 | using qcloudsms_csharp.httpclient; 2 | using qcloudsms_csharp.json; 3 | 4 | using Newtonsoft.Json; 5 | using Newtonsoft.Json.Linq; 6 | 7 | using System; 8 | 9 | 10 | namespace qcloudsms_csharp 11 | { 12 | public class SmsVoiceVerifyCodeSenderResult : SmsResultBase 13 | { 14 | public int result; 15 | public string errMsg; 16 | public string ext; 17 | public string callid; 18 | 19 | public SmsVoiceVerifyCodeSenderResult() 20 | { 21 | this.errMsg = ""; 22 | this.ext = ""; 23 | this.callid = ""; 24 | } 25 | 26 | public override void parseFromHTTPResponse(HTTPResponse response) 27 | { 28 | JObject json = parseToJson(response); 29 | 30 | try 31 | { 32 | result = json.GetValue("result").Value(); 33 | errMsg = json.GetValue("errmsg").Value(); 34 | } 35 | catch (ArgumentNullException e) 36 | { 37 | throw new JSONException(String.Format("res: {0}, exception: {1}", response.body, e.Message)); 38 | } 39 | 40 | if (json["ext"] != null) 41 | { 42 | ext = json.GetValue("ext").Value(); 43 | } 44 | if (json["callid"] != null) 45 | { 46 | callid = json.GetValue("callid").Value(); 47 | } 48 | } 49 | } 50 | } -------------------------------------------------------------------------------- /src/TtsVoiceSender.cs: -------------------------------------------------------------------------------- 1 | using qcloudsms_csharp.httpclient; 2 | using qcloudsms_csharp.json; 3 | 4 | using System; 5 | 6 | 7 | namespace qcloudsms_csharp 8 | { 9 | public class TtsVoiceSender : SmsBase 10 | { 11 | private string url = "https://cloud.tim.qq.com/v5/tlsvoicesvr/sendtvoice"; 12 | 13 | public TtsVoiceSender(int appid, string appkey) : base(appid, appkey, new DefaultHTTPClient()) 14 | { } 15 | 16 | public TtsVoiceSender(int appid, string appkey, IHTTPClient httpclient) : base(appid, appkey, httpclient) 17 | { } 18 | 19 | /// 20 | /// Send a tts voice. 21 | /// 22 | /// nation dialing code, e.g. China is 86, USA is 1 23 | /// phone number 24 | /// template id 25 | /// template parameters 26 | /// playtimes, optional, max is 3, default is 2 27 | /// ext field, content will be returned by server as it is 28 | /// TtsVoiceSenderResult 29 | public TtsVoiceSenderResult send(string nationCode, string phoneNumber, int templateId, 30 | string[] parameters, int playtimes, string ext) 31 | { 32 | long random = SmsSenderUtil.getRandom(); 33 | long now = SmsSenderUtil.getCurrentTime(); 34 | JSONObjectBuilder body = new JSONObjectBuilder() 35 | .Put("tel", (new JSONObjectBuilder()).Put("nationcode", nationCode).Put("mobile", phoneNumber).Build()) 36 | .Put("tpl_id", templateId) 37 | .PutArray("params", parameters) 38 | .Put("playtimes", playtimes) 39 | .Put("sig", SmsSenderUtil.calculateSignature(this.appkey, random, now, phoneNumber)) 40 | .Put("time", now) 41 | .Put("ext", !String.IsNullOrEmpty(ext) ? ext : ""); 42 | 43 | HTTPRequest req = new HTTPRequest(HTTPMethod.POST, this.url) 44 | .addHeader("Conetent-Type", "application/json") 45 | .addQueryParameter("sdkappid", this.appid) 46 | .addQueryParameter("random", random) 47 | .setConnectionTimeout(60 * 1000) 48 | .setRequestTimeout(60 * 1000) 49 | .setBody(body.Build().ToString()); 50 | 51 | // May throw HttpRequestException 52 | HTTPResponse res = httpclient.fetch(req); 53 | 54 | // May throw HTTPException 55 | handleError(res); 56 | 57 | TtsVoiceSenderResult result = new TtsVoiceSenderResult(); 58 | // May throw JSONException 59 | result.parseFromHTTPResponse(res); 60 | 61 | return result; 62 | } 63 | } 64 | } -------------------------------------------------------------------------------- /src/TtsVoiceSenderResult.cs: -------------------------------------------------------------------------------- 1 | using qcloudsms_csharp.httpclient; 2 | using qcloudsms_csharp.json; 3 | 4 | using Newtonsoft.Json; 5 | using Newtonsoft.Json.Linq; 6 | 7 | using System; 8 | 9 | 10 | namespace qcloudsms_csharp 11 | { 12 | public class TtsVoiceSenderResult : SmsResultBase 13 | { 14 | public int result; 15 | public string errMsg; 16 | public string ext; 17 | public string callid; 18 | 19 | public TtsVoiceSenderResult() 20 | { 21 | this.errMsg = ""; 22 | this.ext = ""; 23 | this.callid = ""; 24 | } 25 | 26 | public override void parseFromHTTPResponse(HTTPResponse response) 27 | { 28 | JObject json = parseToJson(response); 29 | 30 | try 31 | { 32 | result = json.GetValue("result").Value(); 33 | errMsg = json.GetValue("errmsg").Value(); 34 | } 35 | catch (ArgumentNullException e) 36 | { 37 | throw new JSONException(String.Format("res: {0}, exception: {1}", response.body, e.Message)); 38 | } 39 | 40 | if (json["ext"] != null) 41 | { 42 | ext = json.GetValue("ext").Value(); 43 | } 44 | if (json["callid"] != null) 45 | { 46 | callid = json.GetValue("callid").Value(); 47 | } 48 | 49 | } 50 | } 51 | } -------------------------------------------------------------------------------- /src/VoiceFileUploader.cs: -------------------------------------------------------------------------------- 1 | using qcloudsms_csharp.httpclient; 2 | using qcloudsms_csharp.json; 3 | 4 | using System; 5 | using System.Text; 6 | 7 | 8 | namespace qcloudsms_csharp 9 | { 10 | public class VoiceFileUploader : SmsBase 11 | { 12 | public enum ContentType 13 | { 14 | WAV, MP3 15 | } 16 | 17 | private string url = "https://cloud.tim.qq.com/v5/tlsvoicesvr/uploadvoicefile"; 18 | 19 | public VoiceFileUploader(int appid, string appkey) : base(appid, appkey, new DefaultHTTPClient()) 20 | { } 21 | 22 | public VoiceFileUploader(int appid, string appkey, IHTTPClient httpclient) : base(appid, appkey, httpclient) 23 | { } 24 | 25 | /// 26 | /// Send a file voice. 27 | /// 28 | /// file content bytes 29 | /// file content type 30 | /// VoiceFileUploaderResult 31 | public VoiceFileUploaderResult upload(byte[] fileContent, ContentType contentType) 32 | { 33 | long random = SmsSenderUtil.getRandom(); 34 | long now = SmsSenderUtil.getCurrentTime(); 35 | string fileSha1Sum = SmsSenderUtil.sha1sum(fileContent); 36 | string auth = SmsSenderUtil.calculateAuth(this.appkey, random, now, fileSha1Sum);; 37 | 38 | string type; 39 | if (contentType == ContentType.WAV) 40 | { 41 | type = "audio/wav"; 42 | } 43 | else 44 | { 45 | type = "audio/mpeg"; 46 | } 47 | 48 | Encoding iso = Encoding.GetEncoding("ISO-8859-1"); 49 | HTTPRequest req = new HTTPRequest(HTTPMethod.POST, this.url) 50 | .addHeader("Content-Type", type) 51 | .addHeader("x-content-sha1", fileSha1Sum) 52 | .addHeader("Authorization", auth) 53 | .addQueryParameter("sdkappid", this.appid) 54 | .addQueryParameter("random", random) 55 | .addQueryParameter("time", now) 56 | .setConnectionTimeout(60 * 1000) 57 | .setRequestTimeout(60 * 1000) 58 | .setBody(iso.GetString(fileContent)) 59 | .setBodyEncoding(iso); 60 | 61 | // May throw HttpRequestException 62 | HTTPResponse res = httpclient.fetch(req); 63 | 64 | // May throw HTTPException 65 | handleError(res); 66 | 67 | VoiceFileUploaderResult result = new VoiceFileUploaderResult(); 68 | // May throw JSONException 69 | result.parseFromHTTPResponse(res); 70 | 71 | return result; 72 | } 73 | } 74 | } -------------------------------------------------------------------------------- /src/VoiceFileUploaderResult.cs: -------------------------------------------------------------------------------- 1 | using qcloudsms_csharp.httpclient; 2 | using qcloudsms_csharp.json; 3 | 4 | using Newtonsoft.Json; 5 | using Newtonsoft.Json.Linq; 6 | 7 | using System; 8 | 9 | namespace qcloudsms_csharp 10 | { 11 | public class VoiceFileUploaderResult : SmsResultBase 12 | { 13 | public int result; 14 | public string errMsg; 15 | public string fid; 16 | 17 | public VoiceFileUploaderResult() 18 | { 19 | this.errMsg = ""; 20 | this.fid = ""; 21 | } 22 | 23 | public override void parseFromHTTPResponse(HTTPResponse response) 24 | { 25 | JObject json = parseToJson(response); 26 | 27 | try 28 | { 29 | result = json.GetValue("result").Value(); 30 | errMsg = json.GetValue("errmsg").Value(); 31 | } 32 | catch (ArgumentNullException e) 33 | { 34 | throw new JSONException(String.Format("res: {0}, exception: {1}", response.body, e.Message)); 35 | } 36 | 37 | if (json["fid"] != null) 38 | { 39 | fid = json.GetValue("fid").Value(); 40 | } 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/httpclient/DefaultHTTPClient.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Text; 3 | using System.Net.Http; 4 | using System.Net.Http.Headers; 5 | 6 | namespace qcloudsms_csharp.httpclient 7 | { 8 | public class DefaultHTTPClient : IHTTPClient 9 | { 10 | public HTTPResponse fetch(HTTPRequest request) 11 | { 12 | UriBuilder uriBuilder = new UriBuilder(request.url); 13 | StringBuilder query = new StringBuilder(); 14 | foreach (var parameter in request.parameters) 15 | { 16 | query.Append(parameter.Key); 17 | query.Append("="); 18 | query.Append(parameter.Value); 19 | query.Append("&"); 20 | } 21 | query.Length--; // Remove the last '&' character 22 | uriBuilder.Query = query.ToString(); 23 | 24 | HttpRequestMessage msg = new HttpRequestMessage(); 25 | msg.RequestUri = uriBuilder.Uri; 26 | request.url = uriBuilder.Uri.ToString(); 27 | msg.Method = new HttpMethod(request.method.ToString()); 28 | msg.Content = new StringContent(request.body, request.bodyEncoding); 29 | foreach (var header in request.headers) 30 | { 31 | if (header.Key == "Content-Type") 32 | { 33 | msg.Content.Headers.ContentType = new MediaTypeHeaderValue(header.Value); 34 | } 35 | else 36 | { 37 | msg.Headers.TryAddWithoutValidation(header.Key, header.Value); 38 | } 39 | } 40 | 41 | // Create http client 42 | using (var client = new HttpClient()) 43 | { 44 | // Fetch http response 45 | try 46 | { 47 | // Sync send request 48 | HttpResponseMessage response = client.SendAsync(msg).Result; 49 | // Sync read response body 50 | string responseBody = response.Content.ReadAsStringAsync().Result; 51 | 52 | HTTPResponse res = new HTTPResponse() 53 | .setRequest(request) 54 | .setStatusCode((int)response.StatusCode) 55 | .setReason(response.ReasonPhrase) 56 | .setBody(responseBody); 57 | 58 | foreach (var header in response.Headers) 59 | { 60 | foreach (var value in header.Value) 61 | { 62 | res.addHeader(header.Key, value); 63 | } 64 | } 65 | 66 | return res; 67 | } 68 | catch (HttpRequestException) 69 | { 70 | // not handle, re-throw 71 | throw; 72 | } 73 | } 74 | } 75 | 76 | public void close() 77 | { } 78 | } 79 | } -------------------------------------------------------------------------------- /src/httpclient/HTTPException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace qcloudsms_csharp.httpclient 5 | { 6 | public class HTTPException : Exception 7 | { 8 | private int statusCode; 9 | private string reason; 10 | 11 | public HTTPException(int statusCode, string reason) 12 | { 13 | this.statusCode = statusCode; 14 | this.reason = reason; 15 | } 16 | 17 | public override string ToString() 18 | { 19 | return String.Format("HTTP statusCode: {0}, reason: {1}", statusCode, reason); 20 | } 21 | 22 | public int getStatusCode() 23 | { 24 | return statusCode; 25 | } 26 | 27 | public string getReason() 28 | { 29 | return reason; 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /src/httpclient/HTTPMethod.cs: -------------------------------------------------------------------------------- 1 | namespace qcloudsms_csharp.httpclient 2 | { 3 | public enum HTTPMethod 4 | { 5 | GET, 6 | POST, 7 | HEAD, 8 | PATCH, 9 | PUT, 10 | DLETE, 11 | OPTIONS 12 | } 13 | } -------------------------------------------------------------------------------- /src/httpclient/HTTPRequest.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Text; 3 | 4 | namespace qcloudsms_csharp.httpclient 5 | { 6 | public class HTTPRequest 7 | { 8 | public HTTPMethod method { get; set; } 9 | public string url { get; set; } 10 | public string body; 11 | 12 | public Encoding bodyEncoding; 13 | public Dictionary headers; 14 | public Dictionary parameters; 15 | public int connectTimeout; 16 | public int requestTimeout; 17 | 18 | 19 | public HTTPRequest(HTTPMethod method, string url) 20 | { 21 | this.method = method; 22 | this.url = url; 23 | this.headers = new Dictionary(); 24 | this.parameters = new Dictionary(); 25 | this.bodyEncoding = System.Text.Encoding.UTF8; 26 | } 27 | 28 | public HTTPRequest setBody(string body) 29 | { 30 | this.body = body; 31 | return this; 32 | } 33 | 34 | public HTTPRequest setBodyEncoding(Encoding bodyEncoding) 35 | { 36 | this.bodyEncoding = bodyEncoding; 37 | return this; 38 | } 39 | 40 | public HTTPRequest addHeader(string name, string value) 41 | { 42 | headers.Add(name, value); 43 | return this; 44 | } 45 | 46 | public HTTPRequest addQueryParameter(string name, string value) 47 | { 48 | parameters.Add(name, value); 49 | return this; 50 | } 51 | 52 | public HTTPRequest addQueryParameter(string name, int value) 53 | { 54 | parameters.Add(name, value.ToString()); 55 | return this; 56 | } 57 | 58 | public HTTPRequest addQueryParameter(string name, long value) 59 | { 60 | // TODO fix enum value name 61 | parameters.Add(name, value.ToString()); 62 | return this; 63 | } 64 | 65 | public HTTPRequest setConnectionTimeout(int connectionTimeout) 66 | { 67 | this.connectTimeout = connectionTimeout; 68 | return this; 69 | } 70 | 71 | public HTTPRequest setRequestTimeout(int requestTimeout) 72 | { 73 | this.requestTimeout = requestTimeout; 74 | return this; 75 | } 76 | 77 | public override string ToString() 78 | { 79 | return string.Format("url: {0}, headers: {1}, body: {2}", 80 | url, headers.ToString(), body); 81 | } 82 | } 83 | } -------------------------------------------------------------------------------- /src/httpclient/HTTPResponse.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | 4 | namespace qcloudsms_csharp.httpclient 5 | { 6 | public class HTTPResponse 7 | { 8 | public HTTPRequest request; 9 | public int statusCode; 10 | public string reason; 11 | public string body; 12 | public Dictionary> headers; 13 | 14 | public HTTPResponse() 15 | { 16 | this.headers = new Dictionary>(); 17 | } 18 | 19 | public HTTPResponse(int statusCode) : this() 20 | { 21 | this.statusCode = statusCode; 22 | } 23 | 24 | public HTTPResponse(int statusCode, string body) : this() 25 | { 26 | this.statusCode = statusCode; 27 | this.body = body; 28 | } 29 | 30 | public HTTPResponse(int statusCode, string body, string reason) : this() 31 | { 32 | this.statusCode = statusCode; 33 | this.body = body; 34 | this.reason = reason; 35 | } 36 | 37 | public HTTPResponse setStatusCode(int statusCode) 38 | { 39 | this.statusCode = statusCode; 40 | return this; 41 | } 42 | 43 | public HTTPResponse setBody(string body) 44 | { 45 | this.body = body; 46 | return this; 47 | } 48 | 49 | public HTTPResponse setReason(string reason) 50 | { 51 | this.reason = reason; 52 | return this; 53 | } 54 | 55 | public HTTPResponse addHeader(string name, string value) 56 | { 57 | if (!headers.ContainsKey(name)) { 58 | headers.Add(name, new List{value}); 59 | } else { 60 | headers[name].Add(value); 61 | } 62 | return this; 63 | } 64 | 65 | public HTTPResponse setRequest(HTTPRequest request) 66 | { 67 | this.request = request; 68 | return this; 69 | } 70 | } 71 | } -------------------------------------------------------------------------------- /src/httpclient/IHTTPClient.cs: -------------------------------------------------------------------------------- 1 | namespace qcloudsms_csharp.httpclient 2 | { 3 | 4 | public interface IHTTPClient 5 | { 6 | HTTPResponse fetch(HTTPRequest request); 7 | 8 | void close(); 9 | } 10 | } -------------------------------------------------------------------------------- /src/httpclient/PoolingHTTPClient.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Text; 3 | using System.Net.Http; 4 | using System.Net.Http.Headers; 5 | 6 | 7 | namespace qcloudsms_csharp.httpclient 8 | { 9 | public class PoolingHTTPClient : IHTTPClient 10 | { 11 | private static HttpClient client = new HttpClient(); 12 | 13 | public HTTPResponse fetch(HTTPRequest request) 14 | { 15 | UriBuilder uriBuilder = new UriBuilder(request.url); 16 | StringBuilder query = new StringBuilder(); 17 | foreach (var parameter in request.parameters) 18 | { 19 | query.Append(parameter.Key); 20 | query.Append("="); 21 | query.Append(parameter.Value); 22 | query.Append("&"); 23 | } 24 | query.Length--; // Remove the last '&' character 25 | uriBuilder.Query = query.ToString(); 26 | 27 | HttpRequestMessage msg = new HttpRequestMessage(); 28 | msg.RequestUri = uriBuilder.Uri; 29 | request.url = uriBuilder.Uri.ToString(); 30 | msg.Method = new HttpMethod(request.method.ToString()); 31 | msg.Content = new StringContent(request.body, request.bodyEncoding); 32 | foreach (var header in request.headers) 33 | { 34 | if (header.Key == "Content-Type") 35 | { 36 | msg.Content.Headers.ContentType = new MediaTypeHeaderValue(header.Value); 37 | } 38 | else 39 | { 40 | msg.Headers.TryAddWithoutValidation(header.Key, header.Value); 41 | } 42 | } 43 | // Fetch http response 44 | try 45 | { 46 | // Sync send request 47 | HttpResponseMessage response = client.SendAsync(msg).Result; 48 | // Sync read response body 49 | string responseBody = response.Content.ReadAsStringAsync().Result; 50 | 51 | HTTPResponse res = new HTTPResponse() 52 | .setRequest(request) 53 | .setStatusCode((int)response.StatusCode) 54 | .setReason(response.ReasonPhrase) 55 | .setBody(responseBody); 56 | 57 | foreach (var header in response.Headers) 58 | { 59 | foreach (var value in header.Value) 60 | { 61 | res.addHeader(header.Key, value); 62 | } 63 | } 64 | 65 | return res; 66 | } 67 | catch (HttpRequestException) 68 | { 69 | // not handle, re-throw 70 | throw; 71 | } 72 | } 73 | 74 | public void close() 75 | { 76 | // Do nothing 77 | } 78 | } 79 | } -------------------------------------------------------------------------------- /src/json/JSONException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | 4 | namespace qcloudsms_csharp.json 5 | { 6 | public class JSONException : Exception 7 | { 8 | public JSONException() 9 | { } 10 | 11 | public JSONException(string message) : base(message) 12 | { } 13 | } 14 | } -------------------------------------------------------------------------------- /src/json/JSONObject.cs: -------------------------------------------------------------------------------- 1 | using System.Dynamic; 2 | using Newtonsoft.Json.Linq; 3 | 4 | namespace qcloudsms_csharp.json 5 | { 6 | public class JSONObjectBuilder 7 | { 8 | private JObject obj; 9 | 10 | public JSONObjectBuilder() 11 | { 12 | obj = new JObject(); 13 | } 14 | 15 | public JSONObjectBuilder Put(string name, object value) 16 | { 17 | obj.Add(name, JToken.FromObject(value)); 18 | return this; 19 | } 20 | 21 | public JSONObjectBuilder PutArray(string name, object[] values) 22 | { 23 | obj.Add(name, new JArray(values)); 24 | return this; 25 | } 26 | 27 | public JSONObjectBuilder PutArray(string name, JArray values) 28 | { 29 | obj.Add(name, values); 30 | return this; 31 | } 32 | 33 | public JObject Build() 34 | { 35 | return obj; 36 | } 37 | } 38 | 39 | public class JSONArrayBuilder 40 | { 41 | private JArray arr; 42 | 43 | public JSONArrayBuilder() 44 | { 45 | arr = new JArray(); 46 | } 47 | 48 | public JSONArrayBuilder Put(object value) 49 | { 50 | arr.Add(value); 51 | return this; 52 | } 53 | 54 | public JArray Build() 55 | { 56 | return arr; 57 | } 58 | } 59 | } --------------------------------------------------------------------------------