• 0
Diego Fernandes

Erro de timeout na alteração do anúncio

Question

Boa tarde,

 

Estou utilizando a PHP-SDK disponibilizada pelo Mercado Livre para integração. Basicamente cadastro anúncios a partir do meu sistema e os atualizo quando necessário, porém, grande parte das minhas requisições à API estão retornando o seguinte erro: Timeout waiting for idle object no campo message do JSON de retorno. Algumas outras vezes o corpo (body) do JSON vem vazio com um código de erro 500. O que pode ser? Tem alguma coisa que eu posso fazer para a API ser mais consistente? 

 

Exemplo de requisição que estou fazendo:

$response = $this->api->post("/items/{$code}/listing_type", [
    'id' => $type
], [
    'access_token' => t('mercadolivre.access_token')
]);

if ($response['httpCode'] !== 200) {
    throw new \Exception((is_object($response['body'])) ? $response['body']->message : 'Erro desconhecido');
}

Na variável $response['body']->message obtenho a mensagem de timeout ou então às vezes o body vem vazio.

 

Obrigado.

Share this post


Link to post
Share on other sites

3 answers to this question

Recommended Posts

  • 0

Olá,

 

Para a API ser mais consistente terá que trabalhar no ML, para o SDK PHP ser mais consistente pode revisar a classe.

 

O seu exemplo é de uma inserção num recurso que não permite. (post)
Você está tentando alterar o listing_type de um anúncio?  (put)

Ou está tentando buscar os dados do anúncio? (get)

 

O que me parece é que o que você está fazendo é tão fora que o ML não nem tratou este erro na API.

 

Me responda as perguntas que eu fiz acima e também coloque o erro apresentado na sua requisição.

Share this post


Link to post
Share on other sites
  • 0
$response = $this->api->post("/items/{$code}/listing_type", [
    'id' => $type
], [
    'access_token' => t('mercadolivre.access_token')
]);

if ($response['httpCode'] !== 200) {
    throw new \Exception((is_object($response['body'])) ? $response['body']->message : 'Erro desconhecido');
}

 

tem certeza que a parte em vermelho está correta?

 

como o Leandro Bertalot disse, 5xx é um erro do lado do Mercado Livre (de um Google em códigos padrão HTTP, conhecimento básico e fundamental para qualquer programador) ... apesar de ser do lado do ML ele pode ser acarretado por um consulta feita de forma errada, onde o ML fica processando sem conseguir chegar a um resultado, o que gera um timeout

 

como o rodrigojob disse você não pode fazer um POST em um item já criado, deve utilizar PUT, está na documentação

 

recomendo que reveja seu código e de mais uma lida na documentação, caso o erro persista precisa informar mais detalhes para sabermos o que ocorre... caso tenha resolvido é uma boa conduta compartilhar a solução (uma vez que compartilhou a dúvida)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now