C# 将数据从dotnetcore api发布到.net api不起作用

C# 将数据从dotnetcore api发布到.net api不起作用,c#,.net,api,.net-core,C#,.net,Api,.net Core,我们在DDD(域驱动设计)环境中工作,我们有几十个用.Net制作的API。我们正在创建的最新站点是一个dotnetcore站点,我们希望调用所有旧的.Net API:s。问题是我无法获取旧API的任何值。每次我向旧API发布内容时,它都会变为null。当我创建dotnetcore api时,它运行良好。dotnetcore调用旧的.net API是否存在已知问题 旧API: [HttpPost] [Route("GetIllustration")] publi

我们在DDD(域驱动设计)环境中工作,我们有几十个用.Net制作的API。我们正在创建的最新站点是一个dotnetcore站点,我们希望调用所有旧的.Net API:s。问题是我无法获取旧API的任何值。每次我向旧API发布内容时,它都会变为null。当我创建dotnetcore api时,它运行良好。dotnetcore调用旧的.net API是否存在已知问题

旧API:

          [HttpPost]
    [Route("GetIllustration")]
    public async Task<HttpResponseMessage> GetIllustration([FromBody] JsData illustrationRequest)
    {
        if(illustrationRequest == null)
        {
            return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Request was null");
        }
        //var modelService = modelLookupService.Get(illustrationRequest.ModelName);
        //var illustration = modelService.Get(illustrationRequest);
        return Request.CreateResponse(HttpStatusCode.Accepted, illustrationRequest);
    }
返回类型不同,但在不同类型的API中是相同的方法

编辑1:

调用.net api:

 public IActionResult Get(GetIllustrationRequest request)
      {
        var req = new JsData()
        {
            CountryCode = "DE",
            DrawSideInfo = true,
            IlXml = "XML",
            ImageSizeHeight = 123,
            ImageSizeWidth = 1234,
            LargeImageSizeHeight = 12345,
            LargeImageSizeWidth = 123456,
            ModelName = "SUPERIOR",
            ShowInside = true,
            SupplierName = "NORMSTAHL",
            TopItemName = "SUPERIOR+42",
            XposText = "HAJ",
            YposText = "DÅÅ"
        };
        return PostAsJson("/GetIllustration", req);
    }

对dotnetcore api的工作调用:

   public IActionResult Get(GetIllustrationRequest request)
    {
        var req = new JsData()
        {
            CountryCode = "DE",
            DrawSideInfo = true,
            IlXml = "XML",
            ImageSizeHeight = 123,
            ImageSizeWidth = 1234,
            LargeImageSizeHeight = 12345,
            LargeImageSizeWidth = 123456,
            ModelName = "SUPERIOR",
            ShowInside = true,
            SupplierName = "NORMSTAHL",
            TopItemName = "SUPERIOR+42",
            XposText = "HAJ",
            YposText = "DÅÅ"
        };
        return PostAsJson("api/Configuration/GetIllustration", req);
    }

编辑2:

以下是实际的邮政编码:

   using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(BaseUri);
                var cancellationToken = new CancellationToken();
                client.DefaultRequestHeaders.Add("X-Content-Type-Options", "nosniff");                 
                if (!string.IsNullOrEmpty(OAuth2Token))
                {
                    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(
                        "BEARER",
                        OAuth2Token);
                }
                var response = client.PostAsJsonAsync(path, value, cancellationToken).Result;
                var stringResult = response.Content.ReadAsStringAsync();
                var result = JsonConvert.DeserializeObject<object>(stringResult.Result);
                return Ok(result);
            }
使用(var-client=new-HttpClient())
{
client.BaseAddress=新Uri(BaseUri);
var cancellationToken=新的cancellationToken();
client.DefaultRequestHeaders.Add(“X-Content-Type-Options”、“nosniff”);
如果(!string.IsNullOrEmpty(OAuth2Token))
{
client.DefaultRequestHeaders.Authorization=新的AuthenticationHeaderValue(
“持票人”,
OAuth2Token);
}
var response=client.PostAsJsonAsync(路径、值、取消令牌);
var stringResult=response.Content.ReadAsStringAsync();
var result=JsonConvert.DeserializeObject(stringResult.result);
返回Ok(结果);
}

由于某种原因,dotnetcore显然无法处理postasjsonasync方法。因此,我不得不手动将我的方法更改为:

                var content = JsonConvert.SerializeObject(value);
                HttpContent httpContent = new StringContent(content, Encoding.UTF8, "application/json");
                var response = client.PutAsync(path , httpContent, cancellationToken).Result;
                var stringResult = response.Content.ReadAsStringAsync();
而不是:

            var response = client.PutAsJsonAsync(path, value, cancellationToken).Result;
            var stringResult = response.Content.ReadAsStringAsync();
            var result = JsonConvert.DeserializeObject<object>(stringResult.Result);
var response=client.PutAsJsonAsync(路径、值、取消令牌);
var stringResult=response.Content.ReadAsStringAsync();
var result=JsonConvert.DeserializeObject(stringResult.result);
            var response = client.PutAsJsonAsync(path, value, cancellationToken).Result;
            var stringResult = response.Content.ReadAsStringAsync();
            var result = JsonConvert.DeserializeObject<object>(stringResult.Result);