RodrigoNascimento

Members
  • Content Count

    2
  • Joined

  • Last visited

Everything posted by RodrigoNascimento

  1. Consegui resolver. O problema está no SDK. Nos métodos PUT e POST troquei a seguinte linha: request.AddBody (body); Por essa: request.AddParameter("application/json", body, ParameterType.RequestBody); Com a correção, os métodos completos ficam assim: public IRestResponse Post (string resource, List<Parameter> param, object body) { bool containsAT = false; var request = new RestRequest (resource, Method.POST); List<string> names = new List<string> (); foreach (Parameter p in param) { names.Add (p.Name + "={" + p.Name + "}"); if (p.Name.Equals ("access_token")) { containsAT = true; } p.Type = ParameterType.UrlSegment; request.AddParameter (p); } request.Resource = resource + "?" + String.Join ("&", names.ToArray ()); request.AddHeader ("Accept", "application/json"); request.AddHeader ("Content-Type", "application/json"); request.RequestFormat = DataFormat.Json; request.AddParameter("application/json", body, ParameterType.RequestBody); var response = ExecuteRequest (request); return response; } public IRestResponse Put (string resource, List<Parameter> param, object body) { bool containsAT = false; var request = new RestRequest (resource, Method.PUT); List<string> names = new List<string> (); foreach (Parameter p in param) { names.Add (p.Name + "={" + p.Name + "}"); if (p.Name.Equals ("access_token")) { containsAT = true; } p.Type = ParameterType.UrlSegment; request.AddParameter (p); } request.Resource = resource + "?" + String.Join ("&", names.ToArray ()); request.AddHeader ("Accept", "application/json"); request.AddHeader ("Content-Type", "application/json"); request.RequestFormat = DataFormat.Json; request.AddParameter("application/json", body, ParameterType.RequestBody); var response = ExecuteRequest (request); return response; }
  2. Olá! Estou tentando atualizar o estoque de um produto via SDK .NET e não estou conseguindo. Pelo Postman consigo fazer tudo perfeitamente, mas quando executo os mesmos comandos pelo SDK não funciona. Esse é meu código: protected void AlterarEstoque(Meli meli, string ID, int quantidade) { // Cria parâmetro com o access token RestSharp.Parameter token = new RestSharp.Parameter(); token.Name = "access_token"; token.Value = meli.AccessToken; // Cria lista de parâmetros que devem ser passados para o POST List<RestSharp.Parameter> parameter = new List<RestSharp.Parameter>(); parameter.Add(token); // Cria o objeto JSON que deve ser passado como body JObject json = new JObject(); json["available_quantity"] = quantidade; // Faz request para obter usuário de teste IRestResponse response = meli.Put($"/items/{ID}", parameter, json); // Transforma as informações recebidas em JSON JObject j = JObject.Parse(response.Content); textBox.Text = j.ToString(Formatting.Indented); } Essa é a resposta: { "message": "body.invalid", "error": "The format is not correct", "status": 400, "cause": [] } Pelo SDK, apenas os comandos via GET funcionam, PUT e POST não e DELETE não usei.