Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [JAVA / ANDROID] POST JSON a Server

    Ciao a tutti, come da titolo della discussione, sto provando ormai non so neanche più da quanto, ad inviare un JSON ad un Server utilizzando la libreria Volley per Android.

    Dopo tantissime ricerche su internet, se non ho capito male, credo di avere trovato finalmente il modo giusto per inviare questo JSON.

    Vi posto il codice:

    codice:
    public void sendJson() {
        JSONObject jsonObject = new JSONObject();
        try {
            jsonObject.put("ID", "1234");
        } catch (JSONException e) {
            e.printStackTrace();
        }
    
        RequestQueue queue = Volley.newRequestQueue(this);
        JsonObjectRequest jsObjRequest = new JsonObjectRequest(
                Request.Method.POST, URL,
                jsonObject,
                new Response.Listener<JSONObject>() {
                    @Override
    public void onResponse(JSONObject response) {
                        Log.d(TAG, "Response:   " + response.toString());
                    }
                }, new Response.ErrorListener() {
                    @Override
    public void onErrorResponse(VolleyError error) {
                        Log.d(TAG, "Error:  " +error.getMessage());
                    }
                });
        queue.add(jsObjRequest);
    }

    La risposta che però ricevo dal server è:

    codice:
    11-22 10:59:42.220 5657-5657/com.example.utente.jsonrequesttest D/MainActivity: Error:  org.json.JSONException: End of input at character 0 of

    Sapete dirmi cosa sto sbagliando?

    Come al solito, vi ringrazio anticipatamente per la vostra disponibilità.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da diabolik03 Visualizza il messaggio
    Sapete dirmi cosa sto sbagliando?
    Non me ne intendo di sviluppo Android (quindi non conosco quella libreria Volley). Ma hai provato innanzitutto a fare la request "a mano" con un qualche tool (es. Postman o similare)? Se hai provato, funziona come ti aspetti?

    L'url (giusto per sapere) poi è di un servizio tuo o comunque sotto il tuo controllo (se non proprio tuo, di tuo collega/amico/ecc....) o è un servizio di terze parti di cui non hai controllo?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Non me ne intendo di sviluppo Android (quindi non conosco quella libreria Volley). Ma hai provato innanzitutto a fare la request "a mano" con un qualche tool (es. Postman o similare)? Se hai provato, funziona come ti aspetti?

    L'url (giusto per sapere) poi è di un servizio tuo o comunque sotto il tuo controllo (se non proprio tuo, di tuo collega/amico/ecc....) o è un servizio di terze parti di cui non hai controllo?
    Ciao Andbin, innanzitutto grazie per la risposta!

    Ti dico la verità, neanche conoscevo l'esistenza di questi Tool, quindi grazie per l'illuminazione!

    Detto questo, l'url è di un server locale sotto il mio controllo, che uso proprio per fare questo tipo di test.

    Comunque poi per fortuna sono riuscito a risolvere, anzi ora posto il codice nel caso possa servire a qualcuno.

    Grazie lo stesso!

    codice:
    public void sendJson(){
        JSONObject jsonObject = new JSONObject(); //add some data to this jsonObject
    
    RequestQueue queue = Volley.newRequestQueue(this);
        JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, URL, jsonObject, new Response.Listener<JSONObject>() {
            @Override
    public void onResponse(JSONObject response) {
                Log.d("Volley:Response ", ""+response.toString());
            }
        }, new Response.ErrorListener() {
            @Override
    public void onErrorResponse(VolleyError error) {
                Log.d("Volley:ERROR ", error.getMessage().toString());
            }
        }){
            @Override
    protected Response<JSONObject> parseNetworkResponse(NetworkResponse response) {
                try {
                    String jsonString = new String(response.data,
                            HttpHeaderParser.parseCharset(response.headers, PROTOCOL_CHARSET));
    
                    JSONObject result = null;
    
                    if (jsonString != null && jsonString.length() > 0)
                        result = new JSONObject(jsonString);
    
                    return Response.success(result,
                            HttpHeaderParser.parseCacheHeaders(response));
                } catch (UnsupportedEncodingException e) {
                    return Response.error(new ParseError(e));
                } catch (JSONException je) {
                    return Response.error(new ParseError(je));
                }
            }
        };
        queue.add(jsonObjectRequest);
    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.