c# HttpWebRequest 异步请求

该代码段展示了如何在C#中使用HttpWebRequest类发起异步GET和POST请求。首先,它创建一个包含请求参数的对象,然后调用GET_V2方法发送GET请求,或者使用HttpPost方法发送POST请求。在每个方法中,请求参数被附加到URL并启动异步响应处理。当响应完成时,通过MessageBox显示响应内容。
摘要由CSDN通过智能技术生成

c# HttpWebRequest 异步请求

rainAlgo.uuid = this.algoProject.UUID;
trainAlgo.task = this.algoProject.Task;
trainAlgo.projectName = this.tb_projectName.Text.Trim();
trainAlgo.epoch = this.tb_epoch.Text.Trim();
trainAlgo.imgsz = this.tb_height.Text.Trim();
trainAlgo.device = this.tb_device.Text.Trim();
trainAlgo.batch = this.tb_batch.Text.Trim();
trainAlgo.weights = this.tb_weights.Text.Trim();
trainAlgo.save_loacal_path = "";
trainAlgo.project = this.tb_SaveDir.Text.Trim();
trainAlgo.data_yaml = this.dataYamlSPath;
trainAlgo.algoCategory = this.tb_algoCategory.Text.Trim();

// 2. 发送请求(初始化模型)
string url = "http://127.0.0.1:5000/init_algo";

JObject train_param = JObject.FromObject(trainAlgo);

// 初始化模型
api.GET_V2(url, train_param);
public void GET_V2(string url, JObject param)
{
    try
    {
        // 拼接访问字符串
        if (param != null) //有参数的情况下,拼接url
        {
            url = url + "?";
            foreach (var item in param)
            {
                url = url + item.Key + "=" + item.Value + "&";
            }
            url = url.Substring(0, url.Length - 1);
        }

        HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;//创建请求
        request.Method = "GET";//这里是POST请求,可以改成GET
        request.ContentType = "application/x-www-form-urlencoded";
        request.BeginGetResponse(new AsyncCallback(Compleate), request);
    }
    catch
    {
        MessageBox.Show("请求失败.");
    }
}

public static void Compleate(IAsyncResult asyncResult)
{
    try
    {
        HttpWebRequest req = (asyncResult.AsyncState as HttpWebRequest);
        HttpWebResponse res = req.EndGetResponse(asyncResult) as HttpWebResponse;
        StreamReader reader = new StreamReader(res.GetResponseStream());

        MessageBox.Show(reader.ReadToEnd());
    }
    catch
    {
        MessageBox.Show("获取失败.");
    }
}

public static void HttpPost(string Url)
{
    try
    {
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);

        request.Method = "POST";//这里是POST请求,可以改成GET
        request.ContentType = "application/x-www-form-urlencoded";
        request.BeginGetResponse(new AsyncCallback(Compleate), request);
    }
    catch
    {
        MessageBox.Show("请求失败.");
    }
}

public static void Compleate(IAsyncResult asyncResult)
{
    try
    {
        HttpWebRequest req = (asyncResult.AsyncState as HttpWebRequest);
        HttpWebResponse res = req.EndGetResponse(asyncResult) as HttpWebResponse;
        StreamReader reader = new StreamReader(res.GetResponseStream());

        MessageBox.Show(reader.ReadToEnd());
    }
    catch
    {
        MessageBox.Show("获取失败.");
    }
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: C#中的HttpWebRequest是一个用于发送HTTP请求的类。它可以用于向Web服务器发送GET、POST、PUT、DELETE等请求,并获取服务器响应。以下是HttpWebRequest的用法: 1. 创建HttpWebRequest对象 使用HttpWebRequest.Create方法创建HttpWebRequest对象,如下所示: HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 其中url是要请求的URL地址。 2. 设置请求方法 使用HttpWebRequest.Method属性设置请求方法,如下所示: request.Method = "GET"; 3. 设置请求头 使用HttpWebRequest.Headers属性设置请求头,如下所示: request.Headers.Add("User-Agent", "Mozilla/5.0"); 4. 设置请求参数 使用HttpWebRequest.GetRequestStream方法获取请求流,然后将请求参数写入请求流中,如下所示: using (Stream stream = request.GetRequestStream()) { byte[] data = Encoding.UTF8.GetBytes("param1=value1&param2=value2"); stream.Write(data, 0, data.Length); } 5. 发送请求并获取响应 使用HttpWebRequest.GetResponse方法发送请求并获取响应,如下所示: using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) { using (Stream stream = response.GetResponseStream()) { StreamReader reader = new StreamReader(stream, Encoding.UTF8); string result = reader.ReadToEnd(); } } 其中result就是服务器响应的内容。 以上就是C#HttpWebRequest的用法。 ### 回答2: 我很抱歉,您没有提供问题或者主题,因此我无法提供相关的回答。请您给出更具体的问题或者主题,我会尽力为您提供满意的答案。感谢您的理解! ### 回答3: 抱歉,您没有提供问题或背景,无法提供回答。请提供问题或背景以获取更好的回答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值