0
dhaoo created
- hi:
- I sent an ajax request on the web end. When he sent the request to the server through the dynamic proxy, I found through packet capture that the content-type was gone and the request body was also gone. Port 44382 is my server. Under the same controller, there is an api also named post. Adding its dynamic proxy is normal because when proxening, the content-type is gone and the request body is also gone, reporting an error of 415
3 Answer(s)
-
0
Hi,
Can you share the Controller and AppService methods so that I can understand the problem better?
-
0
ok, this my controller
using LCFC.MOM.PEC.bPEC1003SMT.bPEC1003SMT; using LCFC.MOM.PEC.bPEC1003SMT.Extensions; using LCFC.MOM.PEC.bPEC1003SMT.Localization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; using System.Collections.Generic; using System.Data; using System.IO; using System.Threading.Tasks; using Volo.Abp; using Volo.Abp.AspNetCore.Mvc; namespace LCFC.MOM.PEC.bPEC1003SMT; [Area(bPEC1003SMTRemoteServiceConsts.ModuleName)] [RemoteService(Name = bPEC1003SMTRemoteServiceConsts.RemoteServiceName)] [Route("api/bPEC1003SMT")] public class bPEC1003SMTController : AbpControllerBase, IbPEC1003SMTAppService { private readonly IbPEC1003SMTAppService _ibPEC1003SMTAppService; public bPEC1003SMTController(IbPEC1003SMTAppService ibPEC1003SMTAppService) { LocalizationResource = typeof(bPEC1003SMTResource); _ibPEC1003SMTAppService = ibPEC1003SMTAppService; } [HttpPost] [Route("getList")] public async Task<ResultView> GetListAsync([FromBody] QueryDto queryDto) { var result = await _ibPEC1003SMTAppService.GetListAsync(queryDto); return result; } [HttpPost] [Route("add")] public async Task<ResultView> AddAsync([FromBody] InsertDto insertDto) { var result = await _ibPEC1003SMTAppService.AddAsync(insertDto); return result; } [HttpPost] [Route("edit")] public async Task<ResultView> EditAsync([FromBody] UpdateDto updateDto) { return await _ibPEC1003SMTAppService.EditAsync(updateDto); } [HttpPost] [Route("delete")] public async Task<ResultView> DeleteAsync([FromBody] DeleteDto deleteDto) { var result = await _ibPEC1003SMTAppService.DeleteAsync(deleteDto); return result; } [HttpPost] [Route("exportToExcel")] public async Task<ResultView> ExportToExcelAsync([FromBody] QueryDto queryDto) { var result = await _ibPEC1003SMTAppService.ExportToExcelAsync(queryDto); return result; } [HttpGet] [Route("DownloadTemplate")] public FileResult DownloadTemplate() { // 使用NPOI创建模板文件 IWorkbook workbook = new XSSFWorkbook(); ISheet sheet = workbook.CreateSheet("Sheet1"); // 创建标题行 IRow headerRow = sheet.CreateRow(0); headerRow.CreateCell(0).SetCellValue("SKU_PN"); headerRow.CreateCell(1).SetCellValue("PACKING_TYPE"); headerRow.CreateCell(2).SetCellValue("PALLET_IN_QTY"); headerRow.CreateCell(3).SetCellValue("CARTON_IN_QTY"); headerRow.CreateCell(4).SetCellValue("UNIT_GROSS_WEIGHT"); headerRow.CreateCell(5).SetCellValue("UNIT_NET_WEIGHT"); headerRow.CreateCell(6).SetCellValue("PACKAGE_WEIGHT"); headerRow.CreateCell(7).SetCellValue("PALLET_SIZE_L"); headerRow.CreateCell(8).SetCellValue("PALLET_SIZE_W"); headerRow.CreateCell(9).SetCellValue("PALLET_SIZE_H"); using (var memoryStream = new MemoryStream()) { workbook.Write(memoryStream); return File(memoryStream.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "bPEC1003SMT_Template.xlsx"); } } [HttpPost] [Route("UploadExcel")] public async Task<ResultView> UploadExcelAsync(IFormFile file) { return await _ibPEC1003SMTAppService.UploadExcelAsync(file); } }
using LCFC.MOM.PEC.bPEC1003SMT.Extensions; using LCFC.MOM.PEC.bPEC1003SMT.Localization; using LCFC.MOM.PEC.bPEC1003SMT.Utils; using Oracle.ManagedDataAccess.Client; using Microsoft.AspNetCore.Http; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using System.Linq.Dynamic.Core; using System.Text; using System.Threading.Tasks; using Volo.Abp.Application.Services; using Volo.Abp.Data; using Volo.Abp.Users; using NPOI.Util; namespace LCFC.MOM.PEC.bPEC1003SMT.bPEC1003SMT { public class bPEC1003SMTAppService : ApplicationService, IbPEC1003SMTAppService { private readonly IConnectionStringResolver _configuration; private readonly ICurrentUser _currentUser; private InfoLightDBTools _dbTools; private InfoLightDBTXTools _dbTxTools; private string _userId; public bPEC1003SMTAppService(IConnectionStringResolver configuration, ICurrentUser currentUser) { LocalizationResource = typeof(bPEC1003SMTResource); ObjectMapperContext = typeof(bPEC1003SMTApplicationModule); _configuration = configuration; _currentUser = currentUser; _userId = _currentUser.UserName ?? "001"; // TODO: 这里需要改成从当前登录用户获取用户ID string connectionString = _configuration.ResolveAsync("MOMDefault").Result; _dbTools = new InfoLightDBTools(null, connectionString); _dbTxTools = new InfoLightDBTXTools(null, connectionString); } public async Task<ResultView> AddAsync(InsertDto insertDto) { insertDto.SkuPn = insertDto.SkuPn.ToUpper().Trim(); insertDto.PackingType = insertDto.PackingType.ToUpper().Trim(); insertDto.CountryCode = insertDto.CountryCode.ToUpper().Trim(); insertDto.VasType = insertDto.VasType.ToUpper().Trim(); if (string.IsNullOrWhiteSpace(insertDto.SkuPn) || string.IsNullOrWhiteSpace(insertDto.PackingType) || string.IsNullOrWhiteSpace(insertDto.CountryCode) || string.IsNullOrWhiteSpace(insertDto.VasType)) { return await Task.FromResult(ResultView.Error(L["RequiredField"].Value)); } if (insertDto.UnitGrossWeight < insertDto.UnitNetWeight) { return await Task.FromResult(ResultView.Error(L["GrossWeightGreaterThanNetWeight"].Value)); } if (insertDto.PackingType == "1" && insertDto.PackageWeight > 0) { return await Task.FromResult(ResultView.Error(L["PackageWeightMustBeZero"].Value)); } DBParameter dbParam = new(); ResultView result; ExecutionResult execRes; string sql = @$"INSERT INTO SFIS1.C_SKU_C38_PALLET_INFO_T( SKU_PN, PACKING_TYPE, PALLET_IN_QTY, CARTON_IN_QTY, UNIT_GROSS_WEIGHT, UNIT_NET_WEIGHT, PACKAGE_WEIGHT, PALLET_SIZE_L, PALLET_SIZE_W, PALLET_SIZE_H, CREATE_UESER, CREATE_DATE, COUNTRY_CODE, VAS_TYPE) VALUES( :SKU_PN, :PACKING_TYPE, :PALLET_IN_QTY, :CARTON_IN_QTY, :UNIT_GROSS_WEIGHT, :UNIT_NET_WEIGHT, :PACKAGE_WEIGHT, :PALLET_SIZE_L, :PALLET_SIZE_W, :PALLET_SIZE_H, :CREATE_UESER, SYSDATE, :COUNTRY_CODE, :VAS_TYPE)"; dbParam.Add("SKU_PN", OracleDbType.Varchar2, insertDto.SkuPn); dbParam.Add("PACKING_TYPE", OracleDbType.Varchar2, insertDto.PackingType); dbParam.Add("PALLET_IN_QTY", OracleDbType.Int32, insertDto.PalletInQty); dbParam.Add("CARTON_IN_QTY", OracleDbType.Int32, insertDto.CartonInQty); dbParam.Add("UNIT_GROSS_WEIGHT", OracleDbType.Decimal, insertDto.UnitGrossWeight); dbParam.Add("UNIT_NET_WEIGHT", OracleDbType.Decimal, insertDto.UnitNetWeight); dbParam.Add("PACKAGE_WEIGHT", OracleDbType.Decimal, insertDto.PackageWeight); dbParam.Add("PALLET_SIZE_L", OracleDbType.Decimal, insertDto.PalletSizeL); dbParam.Add("PALLET_SIZE_W", OracleDbType.Decimal, insertDto.PalletSizeW); dbParam.Add("PALLET_SIZE_H", OracleDbType.Decimal, insertDto.PalletSizeH); dbParam.Add("CREATE_UESER", OracleDbType.Varchar2, _userId); dbParam.Add("COUNTRY_CODE", OracleDbType.Varchar2, insertDto.CountryCode); dbParam.Add("VAS_TYPE", OracleDbType.Varchar2, insertDto.VasType); execRes = _dbTools.ExecuteUpdate(sql, dbParam.GetParameters()); if (execRes.Status) { if (GetStatus(insertDto.SkuPn)) { InsertPN(insertDto.SkuPn); } result = ResultView.Success(execRes.Anything); } else { result = ResultView.Error(execRes.Message); } return await Task.FromResult(result); } private void InsertPN(string vpn) { DBParameter dbParam = new(); string sql = @"Insert into sfism4.u_up2interface_todolist_t (cust_no, type, wip_sn) Values ('NB12', 'W3', :PN)"; dbParam.Add("PN", OracleDbType.Varchar2 , vpn); _ = _dbTools.ExecuteUpdate(sql, dbParam.GetParameters()); } public async Task<ResultView> EditAsync(UpdateDto updateDto) { updateDto.SkuPn = updateDto.SkuPn.ToUpper().Trim(); updateDto.PackingType = updateDto.PackingType.ToUpper().Trim(); updateDto.CountryCode = updateDto.CountryCode.ToUpper().Trim(); updateDto.VasType = updateDto.VasType.ToUpper().Trim(); updateDto.OldSkuPn = updateDto.OldSkuPn.ToUpper().Trim(); updateDto.OldPackingType = updateDto.OldPackingType.ToUpper().Trim(); if (string.IsNullOrWhiteSpace(updateDto.SkuPn) || string.IsNullOrWhiteSpace(updateDto.PackingType) || string.IsNullOrWhiteSpace(updateDto.CountryCode) || string.IsNullOrWhiteSpace(updateDto.VasType) || string.IsNullOrWhiteSpace(updateDto.OldSkuPn) || string.IsNullOrWhiteSpace(updateDto.OldPackingType)) { return await Task.FromResult(ResultView.Error(L["RequiredField"].Value)); // 維護欄位不可為空! } if (updateDto.UnitGrossWeight < updateDto.UnitNetWeight) { return await Task.FromResult(ResultView.Error(L["GrossWeightGreaterThanNetWeight"].Value)); // UNIT_GROSS_WEIGHT需大於UNIT_NET_WEIGHT } if (updateDto.PackingType == "1" && updateDto.PackageWeight > 0) { return await Task.FromResult(ResultView.Error(L["PackageWeightMustBeZero"].Value)); // 单台的packageweight应维护为0 } DBParameter dbParam = new(); ResultView result; ExecutionResult execRes; string sql = @$"UPDATE SFIS1.C_SKU_C38_PALLET_INFO_T SET SKU_PN = :SKU_PN, PACKING_TYPE = :PACKING_TYPE, PALLET_IN_QTY = :PALLET_IN_QTY, CARTON_IN_QTY = :CARTON_IN_QTY, UNIT_GROSS_WEIGHT = :UNIT_GROSS_WEIGHT, UNIT_NET_WEIGHT = :UNIT_NET_WEIGHT, PACKAGE_WEIGHT = :PACKAGE_WEIGHT, PALLET_SIZE_L = :PALLET_SIZE_L, PALLET_SIZE_W = :PALLET_SIZE_W, PALLET_SIZE_H = :PALLET_SIZE_H, UPDATE_USER = :UPDATE_USER, UPDATE_DATE = SYSDATE, COUNTRY_CODE = :COUNTRY_CODE, VAS_TYPE = :VAS_TYPE WHERE SKU_PN = :OLD_SKU_PN AND PACKING_TYPE = :OLD_PACKING_TYPE"; dbParam.Add("SKU_PN", OracleDbType.Varchar2, updateDto.SkuPn); dbParam.Add("PACKING_TYPE", OracleDbType.Varchar2, updateDto.PackingType); dbParam.Add("PALLET_IN_QTY", OracleDbType.Int32, updateDto.PalletInQty); dbParam.Add("CARTON_IN_QTY", OracleDbType.Int32, updateDto.CartonInQty); dbParam.Add("UNIT_GROSS_WEIGHT", OracleDbType.Decimal, updateDto.UnitGrossWeight); dbParam.Add("UNIT_NET_WEIGHT", OracleDbType.Decimal, updateDto.UnitNetWeight); dbParam.Add("PACKAGE_WEIGHT", OracleDbType.Decimal, updateDto.PackageWeight); dbParam.Add("PALLET_SIZE_L", OracleDbType.Decimal, updateDto.PalletSizeL); dbParam.Add("PALLET_SIZE_W", OracleDbType.Decimal, updateDto.PalletSizeW); dbParam.Add("PALLET_SIZE_H", OracleDbType.Decimal, updateDto.PalletSizeH); dbParam.Add("UPDATE_USER", OracleDbType.Varchar2, _userId); dbParam.Add("COUNTRY_CODE", OracleDbType.Varchar2, updateDto.CountryCode); dbParam.Add("VAS_TYPE", OracleDbType.Varchar2, updateDto.VasType); dbParam.Add("OLD_SKU_PN", OracleDbType.Varchar2, updateDto.OldSkuPn); dbParam.Add("OLD_PACKING_TYPE", OracleDbType.Varchar2, updateDto.OldPackingType); execRes = _dbTools.ExecuteUpdate(sql, dbParam.GetParameters()); if (execRes.Status) { if (GetStatus(updateDto.SkuPn)) { InsertPN(updateDto.SkuPn); } result = ResultView.Success(execRes.Anything); } else { result = ResultView.Error(execRes.Message); } return await Task.FromResult(result); } } }
-
0
I have not been able to reproduce the problem, but this problem can often be caused by parameters having different names.
Please make sure that the parameter names of
bPEC1003SMTAppService
andIbPEC1003SMTAppService
are the same.