Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# HttpClient未从WebAPI返回NotFound内容_C#_Asp.net_Asp.net Web Api_Httpclient_Asp.net Core 3.1 - Fatal编程技术网

C# HttpClient未从WebAPI返回NotFound内容

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) {

Web API代码:

        // 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();
}
}
}
}
返回用户;

您没有阅读响应的内容。您没有阅读响应的内容。