我的代码源中的C#错误(使用System.Net.Http)

时间:2018-10-29 21:29:13

标签: c#

语言:C#/ 编码使用:Visual Studio / 使用System.Net.Http.dll

您好,请帮助我,我在C#中创建的代码源项目中有4个错误,这里全是错误:

(我是初学者),但是如果您可以将代码清除后的代码固定下来,我将非常感谢

Error 1 Error 1 (Code)

Error 2 Error 2 (Code)

Error 3 Error 3 (Code)

Error 4 Error 4 (Code)

using System;
using System.ComponentModel;
using System.Drawing;
using System.Net;
using System.Net.Http;
using System.Runtime.CompilerServices;
using System.Text;
using System.Windows.Forms;

namespace CheckerProject
{
    public partial class Checker
    {
        public Checker()
        {
            InitializeComponent();
        }

        private async void Check()
        {
            string text = this.textBox1.Text;
            using (HttpClientHandler httpClientHandler = new HttpClientHandler
            {
                AutomaticDecompression = (DecompressionMethods.GZip | DecompressionMethods.Deflate)
            })
            {
                using (HttpClient httpClient = new HttpClient(httpClientHandler))
                {
                    TaskAwaiter<HttpResponseMessage> taskAwaiter = httpClient.PostAsync("https:\\API.com", new StringContent("{\"onlineId\":\"" + text + "\",\"reserveIfAvailable\":false}".ToString(), Encoding.UTF8, "application/json")).GetAwaiter();
                    if (!taskAwaiter.IsCompleted)
                    {
                        await taskAwaiter;
                        TaskAwaiter<HttpResponseMessage> taskAwaiter2;
                        taskAwaiter = taskAwaiter2;
                        taskAwaiter2 = default(TaskAwaiter<HttpResponseMessage>);
                    }
                    HttpResponseMessage result = taskAwaiter.GetResult();
                    taskAwaiter = default(TaskAwaiter<HttpResponseMessage>);
                    HttpResponseMessage httpResponseMessage = result;
                    HttpResponseMessage httpResponseMessage2 = httpResponseMessage;
                    httpResponseMessage = null;
                    TaskAwaiter<string> taskAwaiter3 = httpResponseMessage2.Content.ReadAsStringAsync().GetAwaiter();
                    if (!taskAwaiter3.IsCompleted)
                    {
                        await taskAwaiter3;
                        TaskAwaiter<string> taskAwaiter4;
                        taskAwaiter3 = taskAwaiter4;
                        taskAwaiter4 = default(TaskAwaiter<string>);
                    }
                    string result2 = taskAwaiter3.GetResult();
                    taskAwaiter3 = default(TaskAwaiter<string>);
                    string text2 = result2;
                    string text3 = text2;
                    text2 = null;
                    if (httpResponseMessage2.StatusCode.ToString() == "429")
                    {
                        //Function
                    }
                    if (httpResponseMessage2.StatusCode != HttpStatusCode.BadRequest)
                    {
                        if (httpResponseMessage2.StatusCode == HttpStatusCode.Created)
                        {
                            //Function
                        }
                        else
                        {
                            //Function
                        }
                    }
                    else
                    {
                        //Function
                        if (text3.Contains("Online id already exists"))
                        {
                            //Function
                        }
                        if (text3.Contains("Improper"))
                        {
                            //Function
                        }
                    }
                    httpResponseMessage2 = null;
                    text3 = null;
                }
                HttpClient httpClient = null;
            }
            HttpClientHandler httpClientHandler = null;
        }
    }
}

1 个答案:

答案 0 :(得分:3)

我将回答前两个错误(它们是相同的问题)。

您应该删除以下两行:

HttpClient httpClient = null;
HttpClientHandler httpClientHandler = null;

您在这里所做的是声明2个 NEW 变量,并将值'null'分配给这两个变量。

您的意思是适当地将'null'分配给现有变量。但是,这不是必需的,因为它们在'using'块内声明,它将自动调用'Dispose'方法。