C# 请求为空。使用$http发送的表单
在C#中无法从请求中获取我的数据。我所做的是将$http发布到代理api。问题是请求。表单是空的;Request.InputStream也是如此 角度: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
$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);
}