Autore Topic: risposta sempre negativa dal server  (Letto 778 volte)

Offline AliceInWonderland

  • Nuovo arrivato
  • *
  • Post: 23
  • Respect: +1
    • Github
    • Google+
    • Raffaella Pivetta
    • pivetta.raffaella@hotmail.it
    • Mostra profilo
  • Dispositivo Android:
    samsung galaxy nexus ( android 4.3 )
  • Sistema operativo:
    window 7
risposta sempre negativa dal server
« il: 16 Maggio 2012, 10:58:38 CEST »
0
Buon giorno ... la mia applicazione in via ad un server un oggetto e attende la risposta... il problema è che la risposta non è mai positiva.... non ci sono errori nel local host....
Codice (Java): [Seleziona]
public class NetworkFeedback extends AsyncTask<String, Void,  String>{
        private static final String uri = "http://192.168.0.133/ciao2.php";
        private HttpPost httppost;
        private HttpClient httpclient;
        private List<NameValuePair> nameValuePairs;
        private HashMap<String ,MyFeedBack> obj;
        private String key;
        private JSONObject json;
        private boolean resending= false;

        /**
         * @uml.property  name="response"
         * @uml.associationEnd  
         */

        private HttpResponse response;
        private String result=null;
        private ResponseHandler <String> resonseHandler;
        private MyFeedBack feedback;
        private Context c;
       
        /**Runs on the UI thread before doInBackground(Params...).**/
        @Override
        protected void onPreExecute() {
                  Log.i("AsyncTask", "onPreExecute");
        }

        /**Override this method to perform a computation on a background thread*/
        @Override
        protected String doInBackground(String... params) {
                c=ContextCaptur.getIstance().getContext();
                String res=null;
                try {
                        httpclient= new DefaultHttpClient();
                        httppost = new HttpPost(uri);
                        resonseHandler = new BasicResponseHandler();
                        json = new JSONObject();
                        obj= new HashMap<String,MyFeedBack>();
                        takeListFeedback();
                                //TODO look for a more efficient cycle
                                sendFeedback(obj);
                                res=readResponseFromServer();
               
                } catch (Exception e) {
                        e.printStackTrace();
                }
                return res;
        }

       

        /**I will take the list feedback that we have insert on db */
        public HashMap<String,MyFeedBack> takeListFeedback(){
                //Take the Feedback to send at DbFeedback
                 List<MyFeedBack> mFeedback= ControlApplication.getIstanceControlApplication().getOnDbAllFeedBack();
                 
                 if(mFeedback!=null){
                                String k;
                                for(MyFeedBack feedback : mFeedback){
                                        k=feedback.getKeyFeedback();
                                        obj.put(k, feedback);
                                }
                        }
                 key=(mFeedback.get(mFeedback.size()-1)).getKeyFeedback();
                 return obj;
        }
       
       
        /**into this method we send the feedback to the server*/
        public HttpResponse sendFeedback(HashMap<String, MyFeedBack> obj2){
                try {
                        String s= (obj2.get(key)).getKeyFeedback();
                       
                        json.put("KeyFeedBack", (obj2.get(key)).getKeyFeedback());
                        json.put("NameApp",(obj2.get(key)).getNameApp());
                        json.put("SerialDevice", (obj2.get(key)).getSerialDevice());
                        json.put("TimeStamp", (obj2.get(key)).getTimeStamp());
                        json.put("TextFeedback", (obj2.get(key)).getTextFeedback());
                        Map<String, String> fed = new HashMap<String, String>();
                        fed.put("feedback", json.toString());
                        nameValuePairs= new ArrayList<NameValuePair>(fed.size());
                        String k,v;
                        Iterator<String> itKeys= fed.keySet().iterator();
                        while (itKeys.hasNext()){
                                k=itKeys.next();
                                v=fed.get(k);
                                nameValuePairs.add(new BasicNameValuePair(k,v));
                        }
                 //      httppost.setEntity(new ByteArrayEntity(json.toString().getBytes("UTF-8")));
                         httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                         
                         System.out.println(nameValuePairs);
                         // Execute HTTP Post Request
                         response = httpclient.execute(httppost);
                         
                         String temp = EntityUtils.toString(response.getEntity());
                       
                        /* if(temp.compareTo("SUCCESS")==0){
                                 Toast.makeText(c, "sending complete! ",Toast.LENGTH_LONG).show();
                         }else{
                                 Toast.makeText(c, "sending incoplete! ",Toast.LENGTH_LONG).show();
                         }
                         */

                         
                } catch (UnsupportedEncodingException e) {
                        //IuLog.Error(e);
                        e.printStackTrace();
                } catch (ClientProtocolException e) {
                        //IuLog.Error(e);
                        e.printStackTrace();
                } catch (JSONException e) {
                        //IuLog.Error(e);
                        e.printStackTrace();
                } catch (IOException e) {
                        //IuLog.Error(e);
                        e.printStackTrace();
                }
                 return response;
               
        }
       
        /**into this method we read the response that Server send to owns Device*/
        public String readResponseFromServer(){
               
                try {
                        BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "iso-8859-1"), 8);
                        StringBuilder sb = new StringBuilder();
                        sb.append(reader.readLine() + "\n");
                        String line = "0";
                        while ((line = reader.readLine()) != null) {
                             sb.append(line + "\n");
                           }
                       
                        reader.close();
                        result= sb.toString(); 
                        Toast.makeText(c, result, Toast.LENGTH_LONG).show();
                        // parsing data
                        return result;
                //      return new JSONArray(result);
                       
                } catch (UnsupportedEncodingException e) {
                        //IuLog.Error(e);
                        e.printStackTrace();
                        return null;
                } catch (IllegalStateException e) {
                //      IuLog.Error(e);
                        e.printStackTrace();
                        return null;
                } catch (IOException e) {
                        //IuLog.Error(e);
                        e.printStackTrace();
                        return null;
                }
               
        }
       
       
        /**Runs on the UI thread after doInBackground(Params...). The specified result is the value returned
         *  by doInBackground(Params...).This method won't be invoked if the task was cancelled.**/

        @Override
        protected void onPostExecute(String result) {
                 if (result != null) {
                         Log.i("AsyncTask", "onPostExecute: Completed.");
                         Toast.makeText(c, "Completed!Developper have receved the feedback that you have send ",Toast.LENGTH_LONG).show();
                         obj.remove(key);
                } else {
                    // error occurred
                        Log.i("AsyncTask", "onPostExecute: Completed with an Error.");
                                Toast.makeText(c, "Completed with an Error!Developper haven't receved the feedback that you have send ",Toast.LENGTH_LONG).show();


                }
        }

}

Codice: [Seleziona]

        <?php
        // the Object
        print_r($_POST);
        print_r($_GET);       
        $j= array('MyFeedback'=>array('keyFeedback'=>'ciao' ) );
        $object=json_encode($j);
        //we read the stream JSON
        echo $object -> {'MyFeedback'};
        ?>



help me non capisco dove sbaglio
Raffaella

Offline AliceInWonderland

  • Nuovo arrivato
  • *
  • Post: 23
  • Respect: +1
    • Github
    • Google+
    • Raffaella Pivetta
    • pivetta.raffaella@hotmail.it
    • Mostra profilo
  • Dispositivo Android:
    samsung galaxy nexus ( android 4.3 )
  • Sistema operativo:
    window 7
Re:risposta sempre negativa dal server
« Risposta #1 il: 16 Maggio 2012, 12:34:59 CEST »
0
Aggiungo che ora mi rileva un errore.....
Codice: [Seleziona]
        05-16 12:34:06.499: I/AsyncTask(6314): onPreExecute
05-16 12:34:06.546: I/System.out(6314): [feedback={"TimeStamp":7914955902061,"TextFeedback":"jj","SerialDevice":"351554053306313","NameApp":"CapturEvent","KeyFeedBack":"351554053306313CapturEvent7914955993614"}]
05-16 12:34:06.640: I/readRespondeFromServer(6314): sending incoplete!
05-16 12:34:06.640: W/System.err(6314): java.lang.IllegalStateException: Content has been consumed
05-16 12:34:06.640: W/System.err(6314):         at org.apache.http.entity.BasicHttpEntity.getContent(BasicHttpEntity.java:84)
05-16 12:34:06.640: W/System.err(6314):         at org.apache.http.conn.BasicManagedEntity.getContent(BasicManagedEntity.java:100)
05-16 12:34:06.640: W/System.err(6314):         at sogetel.pivetta.CapturEvent.network.NetworkFeedback.readResponseFromServer(NetworkFeedback.java:204)
05-16 12:34:06.640: W/System.err(6314):         at sogetel.pivetta.CapturEvent.network.NetworkFeedback.doInBackground(NetworkFeedback.java:118)
05-16 12:34:06.640: W/System.err(6314):         at sogetel.pivetta.CapturEvent.network.NetworkFeedback.doInBackground(NetworkFeedback.java:1)
05-16 12:34:06.640: W/System.err(6314):         at android.os.AsyncTask$2.call(AsyncTask.java:264)
05-16 12:34:06.640: W/System.err(6314):         at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
05-16 12:34:06.640: W/System.err(6314):         at java.util.concurrent.FutureTask.run(FutureTask.java:137)
05-16 12:34:06.648: W/System.err(6314):         at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
05-16 12:34:06.648: W/System.err(6314):         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
05-16 12:34:06.648: W/System.err(6314):         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
05-16 12:34:06.648: W/System.err(6314):         at java.lang.Thread.run(Thread.java:856)
05-16 12:34:06.648: I/AsyncTask(6314): onPostExecute: Completed with an Error.

Raffaella