Aproveitando a dica esta postagem , acho que você pode precisar definir o
User-Agent
cabeçalho em sua solicitação JSON. Tente adicionar uma linha em JSONFunction.makeHttpRequest()
antes da chamada para execute()
Curti:httpPost.setHeader("User-Agent","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36");
ou, na linha antes de chamar
setEntity()
você poderia fazer algo como:para.add(new NameValuePair("User-Agent","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36"));
(Observação:essa string de agente do usuário é apenas uma que eu puxei do meu navegador. Você provavelmente pode usar uma de qualquer navegador moderno.)
Isso fará com que seu serviço REST acredite que a solicitação está vindo de um navegador da web. Suspeito que seja isso que pode estar causando o 403, ou seja, seu servidor web não sabe de que tipo de agente a solicitação está vindo. Quanto ao motivo pelo qual ele simplesmente parou de funcionar, talvez o servidor em que seu serviço PHP está sendo executado tenha sido atualizado recentemente para que não aceite solicitações em que o agente do usuário não esteja declarado.