0

I've been trying to pass string data using [FromBody] but it is always null.

enter image description here

public HttpResponseMessage Post(int id, [FromBody] string value)
{
    return Request.CreateResponse(HttpStatusCode.OK, "Success");
}

enter image description here

Rahul Sharma
  • 7,768
  • 2
  • 28
  • 54
user3035024
  • 199
  • 2
  • 5
  • 17
  • Please post your code as `code-formatted text`, not screenshot. Would be nice if the request is posted in text form as well – Luke Vo Apr 04 '22 at 02:02

3 Answers3

2

In ASP.NET Core you cannot simply use Model binding to get the whole JSON body text as string. You have to either create a binding model or read the request body manually:

var bodyText = await this.Request.Content.ReadAsStringAsync();
Luke Vo
  • 17,859
  • 21
  • 105
  • 181
1
[HttpPost]
public HttpResponseMessage Post(int id, [FromBody] string value)
{
    return Request.CreateResponse(HttpStatusCode.OK, "Success");
}

The [HttpPost] attribute tells the routing engine to send any POST requests to that action method to the one method over the other. This is a type of overloading.enter link description here

biksh49
  • 21
  • 4
0

you can use like below;

        var json = JsonConvert.SerializeObject("your value parameter value");
        var content = new StringContent(json, Encoding.UTF8, "application/json");
        using (var client = new HttpClient())
        {
            try
            {
                client.BaseAddress = new Uri("your url" + "?id=your ID");
                client.DefaultRequestHeaders.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", authString);

                HttpResponseMessage Res = client.PostAsync("", content).Result;

                var jsonContent = Res.Content.ReadAsStringAsync().Result;
              
            }
            catch (Exception ex)
            {
                throw;
            }
        }

above codes work in my app.

cemil
  • 61
  • 7