zoukankan      html  css  js  c++  java
  • c# netcore 发送http请求并接收返回数据

    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Net;
    using System.Security.Cryptography;
    using System.Text;
    using System.Threading.Tasks;
    using Microsoft.AspNetCore.Mvc;
    using Newtonsoft.Json;
    using Newtonsoft.Json.Linq;
    
    namespace c_http2.Controllers
    {
        [Route("api/[controller]/[action]")]
        [ApiController]
        public class TestController : ControllerBase
        {
            [HttpPost]
            public IActionResult GetResult()
            {
                Request.ContentType = "application/json";
                var str = new StreamReader(Request.Body);
                var data_text = str.ReadToEnd();
                JObject data = JsonConvert.DeserializeObject<JObject>(data_text);
                string key1 = HttpContext.Request.Headers["key1"];
                string key2 = HttpContext.Request.Headers["key2"];
                data.Add("key1", (JToken)key1);
                data.Add("key2", (JToken)key2);
                return Ok(data);
            }
            [HttpGet]
            public IActionResult ReturnResult()
            {
                var url = "http://localhost:98/api/Test/GetResult";
                string str_postdata = JsonConvert.SerializeObject(new { a = "a123", b = "b234", t = "1212c567" });
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.Method = "POST";
                request.ContentType = "application/json;charset=utf-8";
                //request.ContentLength = Encoding.UTF8.GetByteCount(str_postdata);
                request.Headers.Add("key1", "key1");
                request.Headers.Add("key2", "key2");
                Stream myRequestStream = request.GetRequestStream();
                StreamWriter myStreamWriter = new StreamWriter(myRequestStream, Encoding.GetEncoding("utf-8"));
                myStreamWriter.Write(str_postdata);
                myStreamWriter.Close();
    
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                Stream myResponseStream = response.GetResponseStream();
                StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
                string retString = myStreamReader.ReadToEnd();
                JObject bupo = JsonConvert.DeserializeObject<JObject>(retString);
                myStreamReader.Close();
                myResponseStream.Close();
                return Ok(bupo);
            }
        }
    }

    发送请求,并接收数据,加ContentLength ,接收的时候,字符好像少了两个,导致报错,就直接屏蔽了。

  • 相关阅读:
    js 操作cookie
    Java——简单实现学生管理系统
    虚方法--重载
    读取Devexpress内部的图标
    ToolTipController 事件触发显示时 避免闪烁的处理方法
    windowsAPI遍历文件夹(速度高于递归)
    XAF去掉View页面的编辑器
    禁用弹出提示框
    设置程序集(dll)引用路径,整洁美观
    WPF移动Window窗体(鼠标点击左键移动窗体自定义行为)
  • 原文地址:https://www.cnblogs.com/huanyun/p/11186949.html
Copyright © 2011-2022 走看看