示例#1
0
        /// <summary>
        /// Send a message to cleverbot and get a response to it. Consider using <see cref="GetResponseAsync(string)"/>
        /// </summary>
        /// <param name="message">your message sent to cleverbot</param>
        /// <returns>response from the cleverbot.com api</returns>
        //[Obsolete("Use GetResponseAsync instead.")]
        //public CleverbotResponse GetResponse(string message)
        //{
        //    if(!Valid)
        //    {
        //        return null;
        //    }

        //    var result = CleverbotResponse.CreateAsync(message, "", ApiKey).GetAwaiter().GetResult();
        //    ConversationId = result?.ConversationId ?? ConversationId;
        //    return result;
        //}

        /// <summary>
        /// Send a message to cleverbot asynchronously and get a response.
        /// </summary>
        /// <param name="message">your message sent to cleverbot</param>
        /// <returns>response from the cleverbot.com api</returns>
        public async Task <CleverbotResponse> GetResponseAsync(string message)
        {
            if (!Valid)
            {
                return(null);
            }

            var result = await CleverbotResponse.CreateAsync(message, ConversationId, ApiKey).ConfigureAwait(false);

            ConversationId = result?.ConversationId ?? ConversationId;
            return(result);
        }
示例#2
0
        internal static async Task <CleverbotResponse> CreateAsync(string message, string conversationId, string apiKey)
        {
            HttpClient c = new HttpClient();

            string conversationLine = (string.IsNullOrWhiteSpace(conversationId) ? "" : $"&cs={conversationId}");

            byte[] bytesReceived = await c.GetByteArrayAsync($"https://www.cleverbot.com/getreply?key={ apiKey }&wrapper=cleverbot.net&input={ message }{ conversationLine }").ConfigureAwait(false);

            if (bytesReceived == null)
            {
                return(null);
            }
            string            result   = Encoding.UTF8.GetString(bytesReceived, 0, bytesReceived.Length);
            CleverbotResponse response = JsonConvert.DeserializeObject <CleverbotResponse>(result);

            if (response == null)
            {
                return(null);
            }
            response.apiKey = apiKey;
            response.CreateInteractionsList();

            return(response);
        }