我有很少的c#APIs Post和Get方法调用MSSQL数据库。 我创建了数据库的副本以及带有第二个连接字符串的API的副本 - 引用新数据库。
在本地邮递员中,对旧API的调用工作正常,并且我得到结果200,但是调用新API继续返回状态400并且响应正文开始于:" System.NullReferenceException" 在chrome postman中,所有API(旧的和新的)都可以正常工作。
似乎有效载荷(正文x-www-form-urlencoded)参数不会转发到本地邮递员的输入类中。
请求标题: [{"键":"内容类型""值":"应用程序/ X WWW的窗体-urlencoded"&# 34;描述":""}]
请求正文x-www-form-urlencoded:
[{"键":" Entranceref""值":" 25""描述&#34 ;: ""},{"键":" Primaryid""值":" 1234"&#34 ;描述":""},{"键":" Secondaryid""值":" 1234&# 34;,"描述":""},{"键":" Loginip""值&#34 ;: " 1.1.1.1""描述":""},{"键":" USERAGENT&#34 ;, "值":" dfgffd""描述":""},{"键":&#34 ;处长""值":" 0""描述":""},{"键&# 34;:" Cookie编号""值":" rtyu""描述":""},{ "键":" Cookiecount""值":" 1""描述":"& #34;},{"键":" Languageid""值":"他""描述" :""}]
状态 - 400错误请求
回应机构:
" ClassName":" System.NullReferenceException", "消息":"对象引用未设置为对象的实例。", "数据":null,
这是API输入类
public class MdCheckEvent
{
public string Entranceref { get; set; }
public string Primaryid { get; set; }
public string Secondaryid { get; set; }
public string Loginip { get; set; }
public string Useragent { get; set; }
public int Registrar { get; set; }
public string Cookieid { get; set; }
public int Cookiecount { get; set; }
public string Languageid { get; set; }
}
[HttpPost public HttpResponseMessage PostCheckEnterance([FromBody] MdCheckEvent Inputs)
答案 0 :(得分:0)
解决了问题:
从头开始编写params - 解决了它。它错过了每个参数的类型和启用的定义。
奇怪的是它仅在原生版本中有效。
现在有效载荷如下所示:
[{"键":" Entranceref""值":" 25""描述&#34 ;: """类型":"文本""启用":真},{"键":& #34; Primaryid""值":" 1234""描述":"""类型&# 34;:"文本""启用":真},{"键":" Secondaryid""值&#34 ;:" 1234""描述":"""类型":"文本"&#34 ;启用":真},{"键":" Loginip""值":" 1.1.1.1",& #34;描述":"""类型":"文本""启用":真},{&# 34;键":" USERAGENT""值":" 1313sdasd""描述":"&#34 ;,"类型":"文本""启用":真},{"键":"处长" "值":" 1""描述":"""类型":"文本""启用":真},{"键":" Cookie编号""值":" 121ss& #34;"德scription":"""类型":"文本""启用":真},{"键& #34;:" Cookiecount""值":" 1""描述":"",& #34;类型":"文本""启用":真},{"键":" Languageid"&# 34;值":"他""描述":"""类型":"文本&#34 ;,"启用":真}]