aierda 2021-09-10 17:43 采纳率: 80%
浏览 455
已结题

在postman接口调试工具中有结果返回,在后台代码中却没有结果返回,求指点

首先我使用postman测试工具,测试接口,返回结果正常,如下图

img


然而,我使用c#后台代码去访问这个接口,却不能获取返回值,最终的返回结果却是空字符串,代码如下

            HttpWebRequest request = null;
            HttpWebResponse response = null;
            Stream streamResponse = null;
            try
            {
                request = (HttpWebRequest)WebRequest.Create("http://192.168.2.20:8080/api/v1/auth/login");
                request.Method = "Post";
                request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";
                request.KeepAlive = true;
                request.ProtocolVersion = HttpVersion.Version10;

                string jsonContract = "{ \"password\" : \"ZJHzjh800521@1\"}";
                byte[] PostData = Encoding.UTF8.GetBytes(jsonContract);
                //发送数据  using结束代码段释放
                using (Stream requestStm = request.GetRequestStream())
                {
                    requestStm.Write(PostData, 0, PostData.Length);
                }
                ServicePoint currentServicePoint = request.ServicePoint;
                currentServicePoint.ConnectionLimit = 1000;

                //响应
                response = (HttpWebResponse)request.GetResponse();
                streamResponse = response.GetResponseStream();
                string strResponse = string.Empty;
                //如果服务端采用了GZIP压缩,则先解压缩。
                if (response.ContentEncoding.ToLower().Contains("gzip"))
                {
                    using (GZipStream gz = new GZipStream(streamResponse, CompressionMode.Decompress))
                    {
                        using (StreamReader readerGzip = new StreamReader(gz, Encoding.UTF8))
                        {
                            strResponse = readerGzip.ReadToEnd();
                        }
                    }
                }
                else
                {
                    using (StreamReader streamRead = new StreamReader(streamResponse, Encoding.UTF8))
                    {
                        strResponse = streamRead.ReadToEnd();
                    }
                }
                return strResponse;**//这里的值最后还是空的**
            }
            catch (Exception ex)
            {
                var msg = ex.Message;
                return msg;
            }

请教:我的代码是在哪里出问题了呢,或者还有什么地方没有设置好?怎样才能实现像postman的那种效果,成功返回结果

  • 写回答

11条回答 默认 最新

  • Roc-xb 后端领域优质创作者 2021-09-10 19:16
    关注

    有个很简单的小技巧,postman可以快速提供多种代码生成
    使用方法:
    第一步:打开代码生成器

    img


    第二步:选择需要生成的代码类型

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(10条)

报告相同问题?

问题事件

  • 系统已结题 9月21日
  • 已采纳回答 9月13日
  • 赞助了问题酬金 9月10日
  • 创建了问题 9月10日

悬赏问题

  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试