Autore Topic: Problema con HTTP Post  (Letto 840 volte)

Offline rocco_fun90

  • Utente junior
  • **
  • Post: 61
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy s3
  • Sistema operativo:
    Windows xp
Problema con HTTP Post
« il: 13 Febbraio 2013, 10:46:14 CET »
0
Cia a tutti ragazzi stravo provando a fare tramite android delle richieste ad un pagina php con il metodo POST
il codice è il seguente
Codice (Java): [Seleziona]
 private static void post(String endpoint, Map<String, String> params)
            throws IOException {        
       
        URL url;
        try {
            url = new URL(endpoint);
        } catch (MalformedURLException e) {
            throw new IllegalArgumentException("invalid url: " + endpoint);
        }

        StringBuilder bodyBuilder = new StringBuilder();    
        Iterator<Entry<String, String>> iterator = params.entrySet().iterator();
        // constructs the POST body using the parameters
        while (iterator.hasNext()) {
            Entry<String, String> param = iterator.next();
            bodyBuilder.append(param.getKey()).append('=')
                    .append(param.getValue());
            if (iterator.hasNext()) {
                bodyBuilder.append('&');
            }
        }
        String body = bodyBuilder.toString();
        Log.v(TAG, "Posting '" + body + "' to " + url);
        byte[] bytes = body.getBytes();
        HttpURLConnection conn = null;
        try {
                Log.e("URL", "> " + url);
            conn = (HttpURLConnection) url.openConnection();
            String userpass = CommonUtilities.USERNAME + ":" + CommonUtilities.PASSWORD;
            String basicAuth = "Basic " + new String(Base64.encode(userpass.getBytes(), 0));
            conn.setRequestProperty ("Authorization", basicAuth);
            conn.setDoOutput(true);
            conn.setUseCaches(false);
            conn.setFixedLengthStreamingMode(bytes.length);
            conn.setRequestMethod("POST");
            conn.setRequestProperty("Content-Type",
                    "application/x-www-form-urlencoded;charset=UTF-8");
            // post the request
            OutputStream out = conn.getOutputStream();
            out.write(bytes);
            out.close();
            // handle the response
            Object o = conn.getContent();
                        InputStream is = (InputStream)o;
                        InputStreamReader isr = new InputStreamReader(is);
                        BufferedReader br = new BufferedReader(isr);
                        String line;
                        while((line = br.readLine()) != null) {
                                        System.out.println(line);
                                }
                                 br.close();
                                 
                                 
            int status = conn.getResponseCode();
            if (status != 200) {
              throw new IOException("Post failed with error code " + status);
            }
        }catch (Exception e)
        {
                //forse la versione di android non supporta questo tipo di connessione
                System.out.print("");
        }
        finally {
            if (conn != null) {
                conn.disconnect();
            }
        }
      }

il problema è che con android 4.1 funziona mentre con il 2.1 no in particolare va in file not found exception quando sta per eseguire l'istruzione
 OutputStream out = conn.getOutputStream();

Chi mi può aiutare?
Ringrazio tutti anticipatamente.
« Ultima modifica: 13 Febbraio 2013, 11:58:51 CET da Ricky`, Reason: titolo e sezione errati »

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Problema con HTTP Post
« Risposta #1 il: 13 Febbraio 2013, 11:28:52 CET »
0
Se è quello che penso, con il 2.2 dovrebbe andare. Da quello che sapevo, HttpURLConnection ha diversi problemi fino a android 2.1 incluso.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline rocco_fun90

  • Utente junior
  • **
  • Post: 61
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy s3
  • Sistema operativo:
    Windows xp
Re:Problema con HTTP Post
« Risposta #2 il: 13 Febbraio 2013, 11:31:21 CET »
0
in realtà è sul getContent() che mi va in eccezione (FileNotFoundException) cosa che non mi fa con le versioni successive di android