C# HttpClient未从WebAPI返回NotFound内容
Web API代码:C# HttpClient未从WebAPI返回NotFound内容,c#,asp.net,asp.net-web-api,httpclient,asp.net-core-3.1,C#,Asp.net,Asp.net Web Api,Httpclient,Asp.net Core 3.1,Web API代码: // POST api/<MAUserController> [HttpPost("AuthenticateUser")] public async Task<ActionResult<MAUser>> PostAsync([FromHeader] string Email, [FromHeader] string Password) {
// POST api/<MAUserController>
[HttpPost("AuthenticateUser")]
public async Task<ActionResult<MAUser>> PostAsync([FromHeader] string Email, [FromHeader] string Password)
{
string connString = configuration.GetConnectionString("DefaultConnection");
MAUserVM user = new MAUserVM();
user = await user.AuthenticateUserAsync(Email, Password, connString);
if (user.AuthenticationCode == 0)
{
return Ok(user._MAUser);
}
else if (user.AuthenticationCode == 100)
{
return NotFound("Email not found");
}
else if (user.AuthenticationCode == 200)
{
return NotFound("Incorrect password");
}
else
{
return NotFound();
}
}
//POST api/
[HttpPost(“认证者”)]
公共异步任务PostAsync([FromHeader]字符串电子邮件,[FromHeader]字符串密码)
{
string connString=configuration.GetConnectionString(“DefaultConnection”);
MAUserVM user=new MAUserVM();
user=wait user.AuthenticateUserAsync(电子邮件、密码、连接字符串);
if(user.AuthenticationCode==0)
{
返回Ok(用户。\u MAUser);
}
else if(user.AuthenticationCode==100)
{
返回未找到(“未找到电子邮件”);
}
else if(user.AuthenticationCode==200)
{
返回NotFound(“不正确的密码”);
}
其他的
{
返回NotFound();
}
}
客户端代码:
using (var httpClient = new HttpClient())
{
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", tokenString);
httpClient.DefaultRequestHeaders.Add("Email", Email);
httpClient.DefaultRequestHeaders.Add("Password", Password);
using (var response = await httpClient.PostAsync(API_URL, stringContent))
{
if (response.IsSuccessStatusCode)
{
string apiResponse = await response.Content.ReadAsStringAsync();
user = JsonConvert.DeserializeObject<MAUser>(apiResponse);
}
else
{
var str = response.StatusCode;
}
}
}
return user;
使用(var httpClient=new httpClient())
{
httpClient.DefaultRequestHeaders.Authorization=新的AuthenticationHeaderValue(“承载者”,令牌字符串);
httpClient.DefaultRequestHeaders.Add(“Email”,Email);
httpClient.DefaultRequestHeaders.Add(“密码”,Password);
使用(var response=wait-httpClient.PostAsync(API_URL,stringContent))
{
if(响应。IsSuccessStatusCode)
{
字符串apiResponse=wait response.Content.ReadAsStringAsync();
user=JsonConvert.DeserializeObject(apiResponse);
}
其他的
{
var str=response.StatusCode;
}
}
}
返回用户;
我只在var str中找不到,但从未找到相关内容-“未找到电子邮件”或“密码不正确”您没有读取响应的内容,只有状态代码
using (var httpClient = new HttpClient()) {
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", tokenString);
httpClient.DefaultRequestHeaders.Add("Email", Email);
httpClient.DefaultRequestHeaders.Add("Password", Password);
using (var response = await httpClient.PostAsync(API_URL, stringContent)) {
if (response.IsSuccessStatusCode) {
string apiResponse = await response.Content.ReadAsStringAsync();
user = JsonConvert.DeserializeObject<MAUser>(apiResponse);
} else {
var status = response.StatusCode;
if (status == HttpStatusCode.NotFound
&& response.Content.Headers.ContentLength.GetValueOrDefault() > 0) {
string content = await response.Content.ReadAsStringAsync();
}
}
}
}
return user;
使用(var httpClient=new httpClient()){
httpClient.DefaultRequestHeaders.Authorization=新的AuthenticationHeaderValue(“承载者”,令牌字符串);
httpClient.DefaultRequestHeaders.Add(“Email”,Email);
httpClient.DefaultRequestHeaders.Add(“密码”,Password);
使用(var response=wait-httpClient.PostAsync(API_URL,stringContent)){
if(响应。IsSuccessStatusCode){
字符串apiResponse=wait response.Content.ReadAsStringAsync();
user=JsonConvert.DeserializeObject(apiResponse);
}否则{
var status=response.StatusCode;
如果(状态==HttpStatusCode.NotFound
&&response.Content.Headers.ContentLength.GetValueOrDefault()>0){
string content=wait response.content.ReadAsStringAsync();
}
}
}
}
返回用户;
您读取的不是响应的内容,而是状态代码
using (var httpClient = new HttpClient()) {
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", tokenString);
httpClient.DefaultRequestHeaders.Add("Email", Email);
httpClient.DefaultRequestHeaders.Add("Password", Password);
using (var response = await httpClient.PostAsync(API_URL, stringContent)) {
if (response.IsSuccessStatusCode) {
string apiResponse = await response.Content.ReadAsStringAsync();
user = JsonConvert.DeserializeObject<MAUser>(apiResponse);
} else {
var status = response.StatusCode;
if (status == HttpStatusCode.NotFound
&& response.Content.Headers.ContentLength.GetValueOrDefault() > 0) {
string content = await response.Content.ReadAsStringAsync();
}
}
}
}
return user;
使用(var httpClient=new httpClient()){
httpClient.DefaultRequestHeaders.Authorization=新的AuthenticationHeaderValue(“承载者”,令牌字符串);
httpClient.DefaultRequestHeaders.Add(“Email”,Email);
httpClient.DefaultRequestHeaders.Add(“密码”,Password);
使用(var response=wait-httpClient.PostAsync(API_URL,stringContent)){
if(响应。IsSuccessStatusCode){
字符串apiResponse=wait response.Content.ReadAsStringAsync();
user=JsonConvert.DeserializeObject(apiResponse);
}否则{
var status=response.StatusCode;
如果(状态==HttpStatusCode.NotFound
&&response.Content.Headers.ContentLength.GetValueOrDefault()>0){
string content=wait response.content.ReadAsStringAsync();
}
}
}
}
返回用户;
您没有阅读响应的内容。您没有阅读响应的内容。