Home > Software design >  How to use an information sent on httpResponse?
How to use an information sent on httpResponse?

Time:02-12

I am learning about making requests to an api using my backend and when i make this i receive a response with some informations i want to use but i don't know how to use this.

Let me clarify this for you.

I HAVE THIS CODE TO MAKE THE REQUEST

try
        {
            //Set Basic Auth
            var userPagarme = test_key;
            var password = "";
            var base64String = Convert.ToBase64String(Encoding.ASCII.GetBytes($"{userPagarme}:{password}"));
            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", base64String);
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

            var clienteToAdd = new PagarmeCliente()
            {
                Name = registerUser.Name,
                Code = registerUser.Code,
                Document = registerUser.Document,
                Type = registerUser.Type,
                Document_Type = registerUser.Document_Type,
                Birthdate = registerUser.Birthdate,
                Email = registerUser.Email,
                Gender = registerUser.Gender,
                Address = new PagarmeClienteEndereco()
                {
                    city = registerUser.City,
                    country = registerUser.Country,
                    line_1 = registerUser.Line_1,
                    line_2 = registerUser.Line_2,
                    state = registerUser.State,
                    zip_code = registerUser.Zip_Code
                },
                Phones = new PagarmeClienteTelefone()
                {
                    mobile_phone = new PagarmeClienteTelefoneMobile()
                    {
                        area_code = registerUser.Mobile_phone_area_code,
                        country_code = registerUser.Mobile_phone_country_code,
                        number = registerUser.Mobile_phone_number
                    },
                }
            };

            var jsonString = JsonConvert.SerializeObject(clienteToAdd);

            HttpResponseMessage response = await client.PostAsJsonAsync(urlPagarme   "customers", clienteToAdd);
            
            response.EnsureSuccessStatusCode();

            string responseBody = await response.Content.ReadAsStringAsync();

            this.responseBodyJSON = JsonConvert.DeserializeObject(responseBody); // I have created this prop as an OBJ to receive the obj that was sent. I don't know if it is correct
        }
        catch (HttpRequestException e)
        {
            return BadRequest("\nException Caught - Message :{0} "   e.Message);
        }

That is what i have in this responseBodyJSON and i want to use this property ID to insert on my database but if i make something like this below it doesn't work:

string idThatIWant = responseBodyJSON.id... or something like that.

Image

CodePudding user response:

 var jsonString = JsonConvert.SerializeObject(clienteToAdd);

 HttpResponseMessage response = await client.PostAsJsonAsync(urlPagarme   "customers", clienteToAdd);

You converted your model to JSON but you didn't use that jsonString. This could be the cause of the problem.

CodePudding user response:

var respBody = JsonConvert.DeserializeObject<PagarmeCliente>(responseBody);

respBody.ID should be available if the class PagarmeCliente has the ID field you wanted populated.

  • Related