zoukankan      html  css  js  c++  java
  • .net core 学习小结之 PostMan报415

    • 首先415的官方解释是:对于当前请求的方法和所请求的资源,请求中提交的实体并不是服务器中所支持的格式,因此请求被拒绝。
    • 也就是说我所准备的数据格式并不是后台代码使用的数据格式
    • 后台代码如下
      using System;
      using System.Collections.Generic;
      using System.ComponentModel.DataAnnotations;
      using System.Linq;
      using System.Threading.Tasks;
      using Microsoft.AspNetCore.Mvc;
      
      namespace JwtAuth.Controllers
      {
          using System.Security.Claims;
          using Microsoft.Extensions.Options;
          using Microsoft.IdentityModel.Tokens;
          using Microsoft.AspNetCore.Authentication.JwtBearer;
          //添加dll的引用 Nuget Microsoft.AspNetCore.Authentication.JwtBearer;
          using System.IdentityModel.Tokens.Jwt;
           [Route("api/[controller]")]
          public class AuthController : Controller
          {
              public JwtSettings settings;
              public AuthController(IOptions<JwtSettings> jwtsettings)
              {
                  settings = jwtsettings.Value;
              }
              [HttpPost]
              public IActionResult Token([FromBody]LoginInfo model)
              {
                  if (ModelState.IsValid)
                  {
                      if (model.username == "cyao" && model.password == "123456")
                      {
                          //用户合法情况
                          //添加授权信息
                          var claims = new Claim[] { new Claim(ClaimTypes.Name, "cyao"), new Claim(ClaimTypes.Role, "admin") };
                          var key = new SymmetricSecurityKey(System.Text.Encoding.UTF8.GetBytes(settings.SecretKey));
                          var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
                          var token = new JwtSecurityToken(
                              settings.Issuer,
                              settings.Audience,
                              claims,
                              DateTime.Now,
                              DateTime.Now.AddMinutes(30),//过期时间
                              creds);
                          return Ok(new { token = new JwtSecurityTokenHandler().WriteToken(token) });
                      }
                  }
                  return BadRequest();
              }
          }
          public class LoginInfo
          {
              [Required]
              public string username { get; set; }
              [Required]
              public string password { get; set; }
          }
      }
    • 使用POSTMan如何构造一个
      [FromBody]?错误示例(图1.0)
    • 正确示例如下图2.0(图2.0)
    • 或者使用图1.0的配置将后台代码参数的标签改成[FromForm]
  • 相关阅读:
    Java操作zip压缩和解压缩文件工具类
    Java操作图片的工具类
    使用Jacob操作Wrod文档的工具类代码
    Java计算文件的SHA码和MD5码
    Java 文件名操作的相关工具类
    Java中windows路径转换成linux路径等工具类
    JDBC的批量批量插入
    显示创建一个表的SQL语句
    MySQL中的保留字
    插入到Mysql数据库中的汉字乱码
  • 原文地址:https://www.cnblogs.com/chongyao/p/8652743.html
Copyright © 2011-2022 走看看