.Net后台在一个API接口中调用另一个接口,传值为json格式

5 篇文章 0 订阅
3 篇文章 0 订阅
这里需要调用别人接口,并且传值为多重json格式数据
    [HttpPost]
    [Route("GetData")]
    public JsonResult<Data> GetData(CommInfoInput input)
    {
        Data rtd = new Data();
        try
        {
            //获取accesstoken的接口url
            string url = "接口url";
           int res;
            var devnum = "自己从数据库中查询出的数据字段值";
            string postData = "{\"api\": \"da.realData.query\",\"ver\": \"1.0\",\"key\": \"wwwww\",\"params\": \"{\\\"devnum\\\": \\\""+ devnum + "\\\"}\"}";//这里是把json转换成字符串形式
          
            //调用接口,发送数据
            string returnData = GetResponseData(postData,url );
            JObject joResult = (JObject)JsonConvert.DeserializeObject(returnData);
            if (joResult.GetString("errcode") == "00")
            {
                rtd.errcode = 0;
                rtd.errmsg = "操作成功";
                rtd.result = joResult;
            }
            else
            {
                rtd.errcode = 1;
                rtd.errmsg = "操作失败!";
                //rtd.result = joResult;
            }
        }
        catch (Exception ex)
        {
            rtd.errcode = 1;
            rtd.errmsg = ex.Message.ToString();
        }
        return Json(rtd);
    }
    //处理调用接口的方法
 public string GetResponseData(string JSONData, string url)
    {
        
        byte[] bytes = Encoding.UTF8.GetBytes(JSONData);
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
        request.Method = "POST";
        request.ContentLength = bytes.Length;
        request.ContentType = "application/json;charset=UTF-8";
        Stream reqstream = request.GetRequestStream();
        reqstream.Write(bytes, 0, bytes.Length);

        //声明一个HttpWebRequest请求
        //request.Timeout = 60000;
        //设置连接超时时间
        request.Headers.Set("Pragma", "no-cache");
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        Stream streamReceive = response.GetResponseStream();
        Encoding encoding = Encoding.UTF8;

        StreamReader streamReader = new StreamReader(streamReceive, encoding);
        string strResult = streamReader.ReadToEnd();
        streamReceive.Dispose();
        streamReader.Dispose();
        Console.WriteLine(strResult);
        return strResult;

    }

如果报500内部错误:说明传值的字段和接口需要的字段不匹配

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值