Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 请求为空。使用$http发送的表单_C#_Angularjs - Fatal编程技术网

C# 请求为空。使用$http发送的表单

C# 请求为空。使用$http发送的表单,c#,angularjs,C#,Angularjs,在C#中无法从请求中获取我的数据。我所做的是将$http发布到代理api。问题是请求。表单是空的;Request.InputStream也是如此 角度: $http({ method: "POST", url: '/apiproxy/projects/' + data.Project.Id + '/recruiting-groups', data: angular.toJson(group, fals

在C#中无法从请求中获取我的数据。我所做的是将$http发布到代理api。问题是请求。表单是空的;Request.InputStream也是如此

角度:

$http({
                method: "POST",
                url: '/apiproxy/projects/' + data.Project.Id + '/recruiting-groups',
                data: angular.toJson(group, false)
            });
C#:

公共操作结果索引(字符串路径信息) { var url=Settings.GetValue(“QualService”)+“/”+pathInfo+“?”+Request.QueryString; //从后端获取内容 使用(var client=new WebClient()) { client.Headers[HttpRequestHeader.ContentType]=“application/x-www-form-urlencoded”; client.Headers[HttpRequestHeader.Cookie]=Request.Headers[“Cookie”]; client.Headers[HttpRequestHeader.Authorization]=“基本”+ Convert.tobase64字符串( Encoding.UTF8.GetBytes( “x:{0}”.Fmt(UserSession.ApiKey)); 尝试 { var responseBytes=Request.HttpMethod==“POST”?client.UploadValues(url,Request.Form):client.DownloadData(url); var result=新的ContentResult(); result.Content=Encoding.UTF8.GetString(responseBytes); result.ContentEncoding=Encoding.UTF8; result.ContentType=“应用程序/json”; 返回结果; } 捕获(例外e) { Logger.Error(“代理API时出错:”,e); } } 返回Json(false); } 当我查看chrome中的网络选项卡时,我可以看到正在传递的数据:


不管请求是什么,表单都是空的。因此,Request.InputStream是空的。发生了什么?

您可能需要尝试添加以下标题类型之一:

应用程序/x-www-form-urlencoded 多部分/表单数据

 public ActionResult Index(string pathInfo)
        {
            var url = Settings.GetValue<string>("QualService") + "/" + pathInfo + "?" + Request.QueryString;


            //Get stuff from the back end
            using (var client = new WebClient())
            {
                client.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
                client.Headers[HttpRequestHeader.Cookie] = Request.Headers["Cookie"];
                client.Headers[HttpRequestHeader.Authorization] = "Basic " +
                                                                  Convert.ToBase64String(
                                                                      Encoding.UTF8.GetBytes(
                                                                          "x:{0}".Fmt(UserSession.ApiKey)));


                try
                {
                    var responseBytes = Request.HttpMethod == "POST" ? client.UploadValues(url, Request.Form) : client.DownloadData(url);

                    var result = new ContentResult();
                    result.Content = Encoding.UTF8.GetString(responseBytes);
                    result.ContentEncoding = Encoding.UTF8;
                    result.ContentType = "application/json";
                    return result;
                }
                catch(Exception e)
                {
                    Logger.Error("Error while proxying to the API:  ", e);
                }
            }

            return Json(false);
        }