Prendendo spunto da questo post , penso che potresti dover impostare lo User-Agent
header nella tua richiesta JSON. Prova ad aggiungere una riga in JSONFunction.makeHttpRequest()
prima della chiamata a execute()
come:
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");
oppure, sulla riga prima di chiamare setEntity()
potresti fare qualcosa come:
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"));
(Nota:questa stringa user-agent è solo quella che ho estratto dal mio browser. Probabilmente puoi usarne una da qualsiasi browser moderno.)
Questo farà credere al tuo servizio REST che la richiesta provenga da un browser web. Sospetto che sia ciò che potrebbe causare il 403, ovvero che il tuo server web non sa da che tipo di agente proviene la richiesta. Per quanto riguarda il motivo per cui ha smesso di funzionare, forse il server su cui è in esecuzione il tuo servizio PHP è stato aggiornato di recente in modo che non accetti richieste in cui lo user-agent non è dichiarato.