简体   繁体   English

获取自定义答案,即 Web API 中 HTTP Post 请求的对象

[英]Get a custom answer, an object for an HTTP Post request in a Web API

I call this WebApi endpoint:我称这个 WebApi 端点为:

public IActionResult MyEndPoint([FromBody] MyType myType)
{
    // I do some stuff

    var answer = new MyAnswer { Id = Guid.NewGuid() };

    return Ok(answer);
}

The call to call the endpoint is this:调用端点的调用是这样的:

public async Task<string> httpPost(string url, string content)
{
    var response = string.Empty;
    using(var client = new HttpClient())
    {
        HttpRequestMessage request = new HttpRequestMessage
        {
            Method = HttpMethod.Post,
            RequestUri = new Uri(url),
            Content = new StringContent(content, Encoding.UTF8, "application/json")
        };

        HttpResponseMessage result = await client.SendAsync(request);
        if(result.IsSuccessStatusCode)
        {
            response = result.StatusCode.ToString(); //here
        }
    }
    return response;
}

I'd like to have access MyAnswer object returned with the Ok() where the //here is.我想访问 MyAnswer 对象,该对象与 //here 所在的 Ok() 一起返回。 I put a breakpoint but nothing look like my object.我放了一个断点,但没有什么看起来像我的对象。

    public async Task<MyAnswer> HttpPost(string url, string content)
    {
        var response = new MyAnswer();
        using (var client = new HttpClient())
        {
            HttpRequestMessage request = new HttpRequestMessage
            {
                Method = HttpMethod.Post,
                RequestUri = new Uri(url),
                Content = new StringContent(JsonSerializer.Serialize(content), Encoding.UTF8, "application/json")
            };

            HttpResponseMessage result = await client.SendAsync(request);
            if (result.IsSuccessStatusCode)
            {
                var responseString = await result.Content.ReadAsStringAsync();
                response =  JsonSerializer.Deserialize<MyAnswer>(responseString, new JsonSerializerOptions { PropertyNameCaseInsensitive = true });
            }
        }
        return response;
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM