[RESOLVIDO]POST JSON para um WebServer

Boa Tarde a todos, gente já fazem uns 3 dias que estou tentando resolver isso e não consigo, estou tentando criar um app e um WebServer ambos comunicando-se com o uso do JSON, a parte do WebServer acredido que esta correta.

JsonApp.Class

@Path("app")
public class JsonApp {
	public JsonApp() {}
	
@GET
@Path("/get")
@Produces(MediaType.APPLICATION_JSON)
public JsonClasse Resul() {

	JsonClasse cj = new JsonClasse();
	cj.setId(12);
	cj.setTitulo("Mano");
	cj.setValor(20);

	return cj;

}
	
@POST
@Path("/post")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public String Pega(JsonClasse aaux) {

	System.out.println("Entrada no método");
	System.out.println(aaux.getTitulo());
	System.out.println(aaux.getValor());
	System.out.println(aaux.getId());

	 return "{\"confi\":\"foi\"}";
}
	
}

JsonClasse.Class

@XmlRootElement
public class JsonClasse {
	
	private int id;
	private List<Byte> imagem = new ArrayList<Byte>();
	private String titulo;
	private double valor;
	
	public JsonClasse() {}

  //Getters e Setters

estou usando o jersey.containers, jersey.core, jersey-media-moxy 2.22.2, o JAXB 2.2.12 e o jsf 2.2.13, como eu disse acredito que está correto o lado do server, o meu problema é do lado do app, usando o HttpURLConnection para criar a conexão e o JSONObject, JSONArray para interpreta-la eu conseguir fazer um GET e exibir o resultado num TextView, o meu problema é na hora de fazer um POST a ideia é enviar esse json{"id":12,"imagem":[],"titulo":"Mano","valor":20.0} e da um “print” no console do WebServer, só que nada acontece, eu não vejo o print no console do server e nem recebo nenhuma mensagem de erro no console do android studio, encontrei varios códigos ensinando a fazer um POST mas nenhum deles funcionou, no momento o que eu tenho é isso mas ele não funciona.

                    URL url = null;
                    try {
                        url = new URL("http://192.168.0.105:8080/WebServiceAppMaven/json/app/post");
                    } catch (MalformedURLException e) {
                        e.printStackTrace();
                    }

                    HttpURLConnection conn = null;
                    try {
                        conn = (HttpURLConnection) url.openConnection();
                        conn.setDoOutput(true);
                        conn.setRequestMethod("POST");

                        OutputStream os = conn.getOutputStream();
                        String jjson = "{\"id\":12,\"imagem\":[],\"titulo\":\"Mano\",\"valor\":20.0}";
                        os.write(jjson.getBytes("UTF-8"));
                        os.flush();
                        os.close();

                        conn.disconnect();

                    }catch (IOException e){
                        e.printStackTrace();
                    }

                    conn.disconnect();

poderia me ajudar, Obrigado.

(Atualização): foi mal dei uma arrumadinha no código, consertei uma pequena bagunça que eu fiz na hora de postar, mexer com isso quando vc esta cansado nunca é uma boa ideia, mas o meu problema continua o mesmo.

Já tentou usar o POSTMAN passando um JSON que você acha que seu webservice deve entender para vê se funciona?

cara valeu mesmo pela dica do POSTMAN eu não conhecia esse programa, agora tenho certeza que o POST do meu WebServer está funcionando e que o problema é mesmo no código do meu app.

Boa tarde Leandro,

que bom que ajudou, já entendendo-se qual lado da ponte está o problema vai ajudar bastante a identificar o erro no código, existe uma outra ferramenta támbem, SOAPUI, um pouco mais robusta ao meu ver doque o POSTMAN mas os dois são muito bons.

abs!

pocha ninguém conhece um código para o meu app poder mandar um POST pro WebService? agora sei que o meu WebService funciona, mas ainda estou com problema no código do app.

Quer enviar o POST pelo android?

é isso ai, eu conseguir fazer um GET recebo um JSON no android e exibo ele num Textview, o meu proble é conseguir enviar um POST pelo android.

demorou mas finalmente conseguir fazer o POST funcionar, sabia que o problema era simples de se resolver, mas até eu descobrir…

o código final ficou assim:

            URL url = null;
            try {
                url = new URL("http://192.168.0.105:8080/WebServiceAppMaven/json/app/post");
            } catch (MalformedURLException e) {
                e.printStackTrace();
            }

            HttpURLConnection conn = null;
            StringBuilder json = new StringBuilder();
            try {
                String jjson = "{\"id\":12,\"imagem\":[],\"titulo\":\"Mano\",\"valor\":1000.0}";
                conn = (HttpURLConnection) url.openConnection();
                conn.setUseCaches(false);
                conn.setReadTimeout(10000);
                conn.setConnectTimeout(15000);
                conn.setDoInput(true);
                conn.setDoOutput(true);
                conn.setRequestMethod("POST");
                conn.setRequestProperty("Content-Type", "application/json");
                conn.setFixedLengthStreamingMode(jjson.length());
                conn.connect();

                OutputStreamWriter os = new OutputStreamWriter(conn.getOutputStream());
                os.write(jjson);
                os.flush();
                os.close();

                InputStream it = new BufferedInputStream(conn.getInputStream());
                BufferedReader br = new BufferedReader(new InputStreamReader(it));
                String linha;
                while((linha = br.readLine()) != null){
                    json.append(linha);
                }

                final String jaba = json.toString();
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        tela.setText(jaba);
                    }
                });

                conn.disconnect();
            }catch (IOException e){
                conn.disconnect();
                e.printStackTrace();
            }