Autore Topic: modificare body in richiesta http POST  (Letto 560 volte)

Offline psicomant

  • Utente junior
  • **
  • Post: 95
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    OSX 10.6.5
modificare body in richiesta http POST
« il: 30 Novembre 2010, 15:09:44 CET »
0
Salve,
come dice il titolo del thread, ho necessita' di impostare il body di una richiesta POST http.

Ho scritto la seguente richiesta:
Codice (Java): [Seleziona]
public void getRequest(TextView txtResult, EditText txtUrl) throws Exception{
        String url = txtUrl.getText().toString();
        HttpClient client = new DefaultHttpClient();
        HttpPost request = new HttpPost(url);
        HttpParams postParams = new BasicHttpParams();
       
        InputStream document = getResources().openRawResource(R.raw.sosregisterxml);
        int size = 0;
        Writer writer = new StringWriter();
                size = document.available();
                BufferedReader reader = new BufferedReader(new InputStreamReader(document, "UTF-8"));
                char[] buffer = new char[size];
                int n;
                while ((n = reader.read(buffer)) != -1) {
                        writer.write(buffer, 0, n);
                }
                document.close();
                String result = writer.toString();
               
                Toast.makeText(this, result, Toast.LENGTH_LONG).show();
                int dimresult = result.length();
               
                //byte[] POSTbytes = result.getBytes();
                //ByteArrayInputStream baos = new ByteArrayInputStream(POSTbytes);
               
                //postParams.setParameter("Content-Length:", POSTbytes.length);
                //postParams.setParameter("", "\r\n");
                //postParams.setParameter("", baos);

                request.setHeader("Content-Type", "application/x-www-form-urlencoded");
                request.setHeader("Content-Length:", ""+dimresult);
                request.setParams((HttpParams) new StringEntity(result));
               
        try{
            HttpResponse response = client.execute(request);
            txtResult.setText(HttpHelper.request(response));
        }catch(Exception ex){
            txtResult.setText("Failed!");
        }
    }

ma non funziona.
Il file XML di cui faccio il parsing per poi metterlo nel body viene letto correttamente, ma la risposta non viene restituita dal servizio.
Se sottopongo la stessa richiesta da un client grafico da browser, funziona correttamente, quindi il problema non risiede nel file XML, che di per se', e' correttamente formattato.

Vorrei, se possibile, delucidazioni specifiche su come impostare il campo dati della POST, considerando che non ho a che fare con un form, ma solo col contenuto di un file XML che devo sottoporre al server.

Grazie