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 ,接收的时候,字符好像少了两个,导致报错,就直接屏蔽了。

  • 相关阅读:
    0Day – 2011.01.26
    JQuery_PHP 开始新的旅途
    0Day – 2011.01.25
    0Day – 2011.02.04
    Delphi 必须的一致.
    0Day – 2011.01.28
    0Day – 2011.02.23[From B4A]
    足球 看球悲惨的回忆.
    Delphi – EurekaLog6.1.01Ent下载地址
    ubuntu 拨号
  • 原文地址:https://www.cnblogs.com/huanyun/p/11186949.html
Copyright © 2011-2022 走看看