webapi无法读取json时间_c# 读取webapi 解析 json - CSDN
精华内容
参与话题
  • ![图片说明](https://img-ask.csdn.net/upload/201901/05/1546678801_709868.png) 我想通过httpclient调用某个webapi地址然后获取图中的数据
  • 获得WebAPI原始POST请求BODY的JSON内容

    万次阅读 2017-09-21 09:24:57
    在controller的action里写如下代码: string content = Request.Content.ReadAsStringAsync().Result;...原因是这样的,当你的Action参数存在[FromBody]等读取内容的方法时,会被[FromBody]“吃掉”。说得有些生动,

    在controller的action里写如下代码:

    string content = Request.Content.ReadAsStringAsync().Result;

    但是这段代码获取的content却是空的,搞了半天没明白,后来在一个国外的论坛找到了原因。

    原因是这样的,当你的Action参数存在[FromBody]等读取内容的方法时,会被[FromBody]“吃掉”。说得有些生动,其实原因是读取完毕后,指向内容的指针会指向最后的结束符,再次读取的时候就读不到了,因此解决方法有两种:

    1、不需要[FromBody],直接在代码里用上述代码读取原始内容。

    2、保留[FromBody],重新调整内容指针,再进行读取。

    Request.Content.ReadAsStreamAsync().Result.Seek(0, System.IO.SeekOrigin.Begin);
    string content = Request.Content.ReadAsStringAsync().Result;

    参考:

    https://stackoverflow.com/questions/10127803/cannot-read-request-content-in-asp-net-webapi-controller

    展开全文
  • using System.IO;.../// WebApi返回图片 /// public HttpResponseMessage GetQrCode() { var imgPath = @"D:\ITdosCom\Images\itdos.jpg"; //从图片中读取byte var imgByte = File.ReadAllBytes(imgPath);
    using System.IO;
    /// <summary>
    /// WebApi返回图片
    /// </summary>
    public HttpResponseMessage GetQrCode()
    {
        var imgPath = @"D:\ITdosCom\Images\itdos.jpg";
        //从图片中读取byte
        var imgByte = File.ReadAllBytes(imgPath);
        //从图片中读取流
        var imgStream = new MemoryStream(File.ReadAllBytes(imgPath));
        var resp = new HttpResponseMessage(HttpStatusCode.OK)
        {
            Content = new ByteArrayContent(imgByte)
            //或者
            //Content = new StreamContent(stream)
        };
        resp.Content.Headers.ContentType = new MediaTypeHeaderValue("image/jpg");
        return resp;
    }
    /// <summary>
    /// WebApi返回json数据
    /// </summary>
    public HttpResponseMessage GetQrCode()
    {
        var jsonStr = "{\"IsSuccess\":true,\"Data\":\"www.itdos.com\"}";
        var result = new HttpResponseMessage(HttpStatusCode.OK)
                        {
                            Content = new StringContent(jsonStr, Encoding.UTF8, "text/json")
                        };
        return result;
    }
    /// <summary>
    /// WebApi返回字符串
    /// </summary>
    public HttpResponseMessage GetQrCode()
    {
        var str = "IT大师www.itdos.com";
        var result = new HttpResponseMessage(HttpStatusCode.OK)
                        {
                            Content = new StringContent(str, Encoding.UTF8, "text/plain")
                        };
        return result;
    }

    展开全文
  • C# 调用Web Api post提交json格式

    千次阅读 2018-09-17 12:18:31
    C# 调用Web Api post提交json格式 public static void sdf(string urls) { string url = urls; //定义request并设置request的路径 WebRequest request = WebRequest.Create(url); reque...

    C# 调用Web Api post提交json格式

        public static void sdf(string urls) 
        {
            string url = urls;
            //定义request并设置request的路径
            WebRequest request = WebRequest.Create(url);
            request.Method = "post";
            //初始化request参数
            string postData = "{\"dataSource\":\"DataSource=192.168.0.70/orcl70;UserID=sde;PassWord=sde;\",\"type\":\"0\",\"whereCondition\":\"dlwz='国和百寿一村6号'\",\"tableName\":\"hzdzd_pt\"}";
            //var json = "{ \"dataSource\": \"Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.70)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl70)));User ID=sde;Password=sde;Unicode=True\" }";
            //设置参数的编码格式,解决中文乱码
            byte[] byteArray = Encoding.UTF8.GetBytes(postData);
            //设置request的MIME类型及内容长度
            request.ContentType = "application/json";
            request.ContentLength = byteArray.Length;
            //打开request字符流
            Stream dataStream = request.GetRequestStream();
            dataStream.Write(byteArray, 0, byteArray.Length);
            dataStream.Close();
            //定义response为前面的request响应
            WebResponse response = request.GetResponse();
            //获取相应的状态代码
            Console.WriteLine(((HttpWebResponse)response).StatusDescription);
            //定义response字符流
            dataStream = response.GetResponseStream();
            StreamReader reader = new StreamReader(dataStream);
            string responseFromServer = reader.ReadToEnd();//读取所有
            Console.WriteLine(responseFromServer);
        }
    
    展开全文
  • 就是我用webapi返回的数据在Google浏览器下都是以类似XML格式返回的,返回的数据无缘无故多了个下面的这样的东西,并且返回数据也不是Json格式的在数据两端多个双引号,并且中间多了许多反斜杠。并且在不同的浏览器...

    前言:

    这几天在用WebApi做微信小程序后台的时候,遇到了一个困扰了一天的东西。就是我用webapi返回的数据在Google浏览器下都是以类似XML格式返回的,返回的数据无缘无故多了个下面的这样的东西,并且返回数据也不是Json格式的在数据两端多个双引号,并且中间多了许多反斜杠。并且在不同的浏览器下返回的还不一样,IE浏览器里没有类似XML的标签,但是数据一样不正确(返回的数据展示的不一样我也查询资料了,说的是和浏览器本身相关--对于这个问题我也没深究)。


    接着向下说:

    这是Google浏览器返回的数据,返回的数据多了个反斜杠,外面也多了个类似XML的东西

    (返回类似XML的解决方法大家可以看下我的另一篇博客)

    链接:https://blog.csdn.net/GreyCastle/article/details/90298597

    这是IE浏览器返回的数据(没有类似XML包括,但是里面还是有反斜杠的东西)



    解决办法:

    需要注意的是,你调用方法后,你自己定义的方法的返回类型必须是HttpResponseMessage类型,否则返回的数据就不是你的数据了,而是默认的HttpResponseMessage这个类中的一些属性,比如Version属性。

    GetJson方法:

     /// <summary>
            /// 将webapi中多出的双引号和转义字符(反斜杠),转换为json返回
            /// </summary>
            /// <param name="json"></param>
            /// <returns></returns>
            public static HttpResponseMessage GetJson(string json)
            {
                var resp = new HttpResponseMessage { Content = new StringContent(json, System.Text.Encoding.UTF8, "application/json") };
                return resp;
            }

    展示效果:返回的确实是Json格式反斜杠也没有了,双引号也去掉了

    关于Goole返回的是XML格式的大家可以看下我的另一篇博客,主要是标题太长了,就没写一块。嘻嘻!

    链接:https://blog.csdn.net/GreyCastle/article/details/90298597

    结尾:


           分享:必须从过去的错误学习教训而非依赖过去的成功。

     

    展开全文
  • Json.NET读写Json文件

    万次阅读 2012-04-18 09:54:15
    Json文件的写入读取 采用的Json.NET提供的API。 http://james.newtonking.com/projects/json-net.aspx http://www.codeplex.com/json/ 以下是demo代码 using System; using System.Collections.Generic...
  • ASP.NET Core读取appsettings.json的配置

    千次阅读 2016-10-31 19:45:45
    在.net core中是没有*.config 文件的 配置文件都是*.json 1、在project.json里下面这行代码 "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0", 然后修改 appsettings.json 添加Redis配置 ...
  • WEBAPI中,AuthorizeAttribute类重写时,如何获取post数据是个难题,网上找资料也不好使,只能自己研究,通过研究发现,WEBAPI给了我们获取POST数据的可能,下面介绍一下: //将POST数据以字符串的形式读取,...
  • webapi获取数据库数据转换成json格式

    千次阅读 2019-03-26 11:54:22
    webapi的controller中:(js调用该controller,然后返回数据给Js处理) public string getztreenode() { try { SqlConnection sqlConnection = new SqlConnect...
  • 编写API

    千次阅读 2018-05-27 19:11:52
    自从Roy Fielding博士在2000年他的博士论文中提出REST(Representational State Transfer)风格的软件架构模式后,REST就基本上迅速取代了复杂而笨重的SOAP,成为Web API的标准了。什么是Web API呢?如果我们想要...
  • using System.IO;.../// WebApi返回图片 /// </summary> public HttpResponseMessage GetQrCode() { var imgPath = @"D:\ITdosCom\Images\itdos.jpg"; //从图片中读取byte ...
  • fetch获取解析json数据

    千次阅读 2017-08-28 09:18:20
    因为在 Request 和 Response 中都包含 Body 的实现,所以包含以下类型: ArrayBufferArrayBufferView (Uint8Array and friends)Blob/FilestringURLSearchParamsFormData ...那如何获取到我们的json数据呢?
  • 我需要的参数格式内容大致是 { "cmd":"pathAnalysis", "sx":116.359425, "sy":39.951782, "ex":116.403694, "ey":39.914935, "route":2 } 在service中我应该怎么获取请求体中的参数内容呢?
  • /// WebApi返回图片 ///  public HttpResponseMessage GetQrCode() {  var imgPath = @"D:\ITdosCom\Images\itdos.jpg";  //从图片中读取byte  var imgByte = File.ReadAllBytes(imgPath);
  • c#获取json数据并分解(源代码示例)

    万次阅读 2018-06-26 13:27:22
    1.找准链接,根据这个链接获取json数据https://api.douban.com/v2/book/isbn/9787115212948其中9787115212948是书号,真正的地址是https://api.douban.com/v2/book/isbn/书号获取json格式的内容(你也试试){"...
  • 在一个项目中要使用百度地图API
  • HTML5实现本地JSON文件的读写

    千次阅读 2019-07-09 22:03:28
    参考: 使用HTML5来实现本地文件读取和写入 (FileReader读取json...FileReader WebAPI接口 FileSaver.js下载地址 FileSaver.js介绍 JS创建、写入、读取本地文件(txt) (ActiveXObject 这玩意根本不能用,IE...
  • 前端传一个json对象,后端用字典接收 byte[] data = new byte[HttpContext.Current.Request.InputStream.Length]; HttpContext.Current.Request.InputStream.Read(data, 0, data.Length); string txt = ...
  • WebAPI接口调试技巧

    千次阅读 2020-06-22 13:20:23
    1.了解WebAPI接口 接口模式:基于MVC4.0的WebAPI 承载协议:HTTP 跟踪工具:IE11 请求方式:POST 请求URL:IP:Port/Application/Controller/ActionName/Parameters 请求参数:一串由JSON对象转化而成的字符串 响应...
  • 实现读取本地json格式文件并解析

    千次阅读 2016-08-03 17:20:49
    实现读取本地json格式文件并解析
1 2 3 4 5 ... 20
收藏数 54,121
精华内容 21,648
关键字:

webapi无法读取json时间