C# 为什么我在asp.net中的POST中变为null
我的web api中有一个POST方法,它在POSTMAN中运行良好。 这是我的web api代码:C# 为什么我在asp.net中的POST中变为null,c#,asp.net,rest,api,C#,Asp.net,Rest,Api,我的web api中有一个POST方法,它在POSTMAN中运行良好。 这是我的web api代码: [AcceptVerbs("GET", "POST")] public IEnumerable<TuitionHistoryStudent> GetTuitionHistoryStudent(TuitionHistoryStudent student) { List<TuitionHistoryStudent> tuitionHistory
[AcceptVerbs("GET", "POST")]
public IEnumerable<TuitionHistoryStudent> GetTuitionHistoryStudent(TuitionHistoryStudent student)
{
List<TuitionHistoryStudent> tuitionHistoryList = new List<TuitionHistoryStudent>();
try
{
Connection();
SqlCommand cmd = new SqlCommand("spTuitionHistoryStudent", conn);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("StudentID", student.StundentID);
conn.Open();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
TuitionHistoryStudent tuitionHistory = new TuitionHistoryStudent();
tuitionHistory.StundentID = Convert.ToInt32(reader["StudentID"]);
tuitionHistory.TutionTeacherID = Convert.ToInt32(reader["TutionTeacherID"]);
tuitionHistory.Class = reader["Class"].ToString();
tuitionHistory.Subject = reader["Subject"].ToString();
tuitionHistory.Time = reader["Time"].ToString();
tuitionHistory.Date = reader["Date"].ToString();
tuitionHistory.Ratting = Convert.ToInt32(reader["Rating"]);
tuitionHistoryList.Add(tuitionHistory);
}
conn.Close();
}
catch (Exception)
{
}
return tuitionHistoryList;
}
[AcceptVerbs(“GET”、“POST”)]
公共IEnumerable GetuitionHistoryStudent(TutionHistoryStudent)
{
List tutionHistoryList=新列表();
尝试
{
连接();
SqlCommand cmd=新的SqlCommand(“SPCtutionHistoryStudent”,康涅狄格州);
cmd.CommandType=System.Data.CommandType.StoredProcess;
cmd.Parameters.AddWithValue(“StudentID”,student.StudentID);
conn.Open();
SqlDataReader=cmd.ExecuteReader();
while(reader.Read())
{
TutionHistory学生TutionHistory=新TutionHistory学生();
tutionhistory.StundentID=Convert.ToInt32(reader[“StudentID]”);
tutionhistory.TutionTeacherID=Convert.ToInt32(读卡器[“TutionTeacherID]”);
tutionhistory.Class=reader[“Class”].ToString();
tutionhistory.Subject=reader[“Subject”].ToString();
tutionhistory.Time=reader[“Time”].ToString();
tutionhistory.Date=reader[“Date”].ToString();
tutionhistory.Ratting=Convert.ToInt32(读卡器[“评级]);
学费历史列表。添加(学费历史);
}
康涅狄格州关闭();
}
捕获(例外)
{
}
返回学费历史列表;
}
这是我的代码,其中是调用我的url:
public async void ShowTuitionSistoryAsync()
{
int StudentID = 1017;
string url = "my_url";
HttpClient client = new HttpClient();
string jsonData = JsonConvert.SerializeObject(new { StudentID = StudentID });
StringContent content = new StringContent(jsonData, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(url, content).ConfigureAwait(true);
var result = await response.Content.ReadAsStringAsync();
if(result != null)
{
var ListOfHistory = JsonConvert.DeserializeObject<List<TuitionHistoryStudent>>(result);
}
else
{
//
}
}
public async void showtuitionsistorySync()
{
int StudentID=1017;
string url=“我的url”;
HttpClient=新的HttpClient();
字符串jsonData=JsonConvert.SerializeObject(新的{StudentID=StudentID});
StringContent=新的StringContent(jsonData,Encoding.UTF8,“application/json”);
HttpResponseMessage response=await client.PostAsync(url、内容).ConfigureAwait(true);
var result=await response.Content.ReadAsStringAsync();
如果(结果!=null)
{
var ListOfHistory=JsonConvert.DeserializeObject(结果);
}
其他的
{
//
}
}
我总是得到这个空结果“[]”。
你们能告诉我问题出在哪里吗?你们得到的http状态码是什么?这是成功状态码吗?我看到您正在捕获GetTutionHistoryStudents方法中的任何异常。你能调试API并验证捕获是否没有被触发吗。捕获不触发。在WebAPI中,我检查了。它总是在循环中运行。完成循环并返回我想要的对象列表。我不知道当我试图调用我的url时是否出现了问题。您得到了哪个http状态码的响应?状态码是:System.Net.HttpStatusCode.OK在GetuitionHistoryStudent中放置一个断点,然后查看到达那里的内容