我有一个简单的存储过程,可以获取用户名和密码并选择所有信息并返回。
我在这里有此请求代码:
[AcceptVerbs("GET", "POST")]
public Student GetInfoByLogin(Student studentm)
{
//Response response = new Response();
Student student = new Student();
try
{
Connection();
SqlCommand cmd = new SqlCommand("GetInfoByUserNameAndPassword", conn);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@UserName", studentm.UserName);
cmd.Parameters.AddWithValue("@Password", studentm.Password);
conn.Open();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
student.StundentID = Convert.ToInt32(reader["StudentID"]);
student.UserName = reader["UserName"].ToString();
student.Password = reader["Password"].ToString();
student.PhoneNumber = reader["PhoneNumber"].ToString();
student.Name = reader["Name"].ToString();
student.Age = Convert.ToInt32(reader["Age"]);
student.InstitutionName = reader["InstitutionName"].ToString();
student.RechargedAmount = Convert.ToInt32(reader["RechargedAmount"]);
student.IsPending = Convert.ToInt32(reader["IsPending"]);
}
conn.Close();
}
catch (Exception ex)
{
//
}
return student;
}
我测试了此请求,该请求在Postman中可以正常工作。但是当我点击网址时,没有任何信息。我在想这是ExecuteReader()操作。它应该显示出一些东西!!!有这样的错误日志:
<Message>The request contains an entity body but no Content-Type header. The inferred media type 'application/octet-stream' is not supported for this resource.</Message>
没有MediaTypeFormatter可以从媒体类型为“ application / octet-stream”的内容中读取“ Student”类型的对象。
但是在Postman中它可以正常工作。您能告诉我如何发送POST并使用GET在单个url调用中获取返回的值。
答案 0 :(得分:0)
听起来您想要执行一个包含两个步骤的一步过程。
您不会先通过HTTP请求POST
然后GET
,然后进行POST并获得响应。该响应可能是传递给另一个端点的信息,但是所有HTTP请求都获得某种形式的响应,其中可能包含数据。
[AcceptVerbs("POST")]
public Student GetInfoByLogin(Student studentm)
{
return GetStudentData();
}
错误本身表明您在错误地调用端点
<Message>The request contains an entity body but no Content-Type header. The inferred media type 'application/octet-stream' is not supported for this resource.</Message>
这意味着您的端点本身没有错,是调用方没有处理它。
考虑此SO链接How do you set the Content-Type header for an HttpClient request?
您可能在读或写方面都犯了这个错误,因为您没有指出错误的来源(调用者或处理程序)