hi all,
My android app scan avaible wifi access points and generate a xml file
with that.
Then i send it trough a http post message to a servlet, which gets the
message body with de xml content y insert its content to a DB.

My problem is that I cant get the http post body in the servlet. I get
something like this instead:

XML=%3C%3Fxml+version%3D%271.0%27+encoding%3D%27UTF-8%27+standalone%3D
%27yes%27+%3F%3E%3CRedesDetectadas%3E%3CPosicion+Nombre%3D%22RiverPlate
%22+PuntoAcceso%3D%2200%3A18%3A9b%3A05%3A67%3Ae0%22+Senyal%3D
%22-87%22+Empleado%3D%22EM1%22+Dia%3D%2228%2F3%2F2010%22+Hora%3D
%2210%3A31%22+%2F%3E%3CPosicion+Nombre%3D%22Arquitectos%22+PuntoAcceso
%3D%2200%3A1f%3Ac6%3Ad5%3A9d%3Add%22+Senyal%3D%22-93%22+Empleado%3D
%22EM1%22+Dia%3D%2228%2F3%2F2010%22+Hora%3D%2210%3A31%22+%2F%3E%3C
%2FRedesDetectadas%3E\n

I think it's sth to be with the encoding, but i couldnt solve it.


Here is the android app code(the part that makes the connection):

        public String executeHttpPost() throws Exception{
                BufferedReader in = null;
                String result="";
                try {
                        String xml = XMLHelper.crearXML(results);
                        HttpClient client = new DefaultHttpClient();
                        HttpPost request =
new HttpPost("http://192.168.0.10:8080/ServidorWebSupervisorV1/
ServletSupervisorV1");

                        List<NameValuePair> postParamaters = new
ArrayList<NameValuePair>();
                        postParamaters.add(new BasicNameValuePair("XML", xml));
                        UrlEncodedFormEntity formEntity = new
UrlEncodedFormEntity(postParamaters);

                        request.setHeader("Host", "EM1");
                        
request.setHeader("Content-Type","application/x-www-form-
urlencoded");
                        request.setEntity(formEntity);

                        String f = EntityUtils.toString(request.getEntity());

                        HttpResponse response = client.execute(request);
                        in = new BufferedReader(new
InputStreamReader(response.getEntity().getContent()));
                        StringBuffer sb = new StringBuffer("");
                        String line = "";
                        String NL = System.getProperty("line.separator");
                        while((line = in.readLine())!= null)
                                sb.append(line + NL);
                        in.close();

                        result = sb.toString();
                }
                catch(Exception e){
                        String m = e.getMessage();
                }
                return result;
        }

I debugged it and the xml string is well generated.


The servlet code is to get the body is:

protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {

                if(request.getHeader("Host").equals("EM1")){
                        PrintWriter out = response.getWriter();

                        System.out.println("tamano: 
"+request.getContentLength());
                        System.out.println("metodo:"+request.getMethod());
                        System.out.println("path:"+request.getContextPath());
                        System.out.println("address:"+request.getRemoteAddr());
                        System.out.println("metodo:"+request.getMethod());

                        String body="", aux="";
                        BufferedReader reader = request.getReader();
                        while((aux = reader.readLine())!=null)
                                body = body + aux + "\n";

                        InputSource source = new InputSource(reader);

                        try {
                                SAXParserFactory spf = 
SAXParserFactory.newInstance();
                                javax.xml.parsers.SAXParser sp = 
spf.newSAXParser();
                                XMLReader xr = sp.getXMLReader();
                                XMLHandler handler = new XMLHandler();
                                xr.setContentHandler(handler);
                                xr.parse(new InputSource(request.getReader()));
                        } catch (Exception e) {
                                e.printStackTrace();
                        }
                }

thanks everybody!



-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to