2012-11-21 3 views
1

J'essaie de laisser mes utilisateurs être en mesure de signaler de petites erreurs mon application android attrape automatiquement à mon serveur. Ce n'est rien de grand, juste une petite zone de texte et un bouton d'envoi.Android: Téléchargement de chaînes vers le serveur

Il est censé envoyer 3 chaînes (erreur, description facultative de l'utilisateur et l'heure) à un fichier sur mon site Web conçu spécifiquement pour capturer ces erreurs. La chose est, je n'ai absolument aucune idée de comment le faire. Je sais seulement comment laisser ma demande lire les infos de mon site mais pas l'inverse.

Dois-je avoir un script spécial sur mon site Web? Les chaînes JSON sont-elles nécessaires? J'ai besoin de la chaîne pour être sauvé là. (Pas temporairement) Je suis un peu un débutant donc toute aide est appréciée. Merci!

Répondre

0

- Il doit y avoir un script en cours d'exécution sur votre serveur, par exemple: php script.

- Sa fait un web service publié sur le serveur afin qu'un client puisse y accéder.

- Ensuite, vous aurez besoin de faire un HTTP Post au serveur, de son mieux d'utiliser NameValuePair ainsi que pour envoyer les données.

Ceci est mon code pour faire HTTP POST:

public String postData(String url, String xmlQuery) { 

     final String urlStr = url; 
     final String xmlStr = xmlQuery; 
     final StringBuilder sb = new StringBuilder(); 

     Thread t1 = new Thread(new Runnable() { 

      public void run() { 

       HttpClient httpclient = MySSLSocketFactory.getNewHttpClient(); 

       HttpPost httppost = new HttpPost(urlStr); 

       try { 

        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(
          1); 
        nameValuePairs.add(new BasicNameValuePair("xml", xmlStr)); 

        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

        HttpResponse response = httpclient.execute(httppost); 

        Log.d("Vivek", response.toString()); 

        HttpEntity entity = response.getEntity(); 
        InputStream i = entity.getContent(); 

        Log.d("Vivek", i.toString()); 
        InputStreamReader isr = new InputStreamReader(i); 

        BufferedReader br = new BufferedReader(isr); 

        String s = null; 

        while ((s = br.readLine()) != null) { 

         Log.d("YumZing", s); 
         sb.append(s); 
        } 

        Log.d("Check Now", sb + ""); 

       } catch (ClientProtocolException e) { 

        e.printStackTrace(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } /* 
       * catch (ParserConfigurationException e) { // TODO 
       * Auto-generated catch block e.printStackTrace(); } catch 
       * (SAXException e) { // TODO Auto-generated catch block 
       * e.printStackTrace(); } 
       */ 
      } 

     }); 

     t1.start(); 
     try { 
      t1.join(); 
     } catch (InterruptedException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

     System.out.println("Getting from Post Data Method " + sb.toString()); 

     return sb.toString(); 
    } 

////////////////////////////Edité Partie ///////////////////////////////////

côté serveur code php:

<?php 

require_once(ROOT.'/lab/lib/xyz_api_int.php'); 

try { 

    //setup the sdk 
    $api = YumzingApiInt::_get(
     Config::get('api_int','url'), 
     Config::get('api_int','key'), 
     Config::get('api_int','secret') 
    ); 

    //connect to the api 
    $api->connect(); 

    //check our token 
    echo $api->getToken(); 

} catch(Exception $e){ 
    sysError($e->getMessage()); 
} 
+0

Merci, c'est très utile! Voulez-vous me montrer le script en cours d'exécution sur le serveur? – Pkmmte

+0

@Pkmmte j'ai ajouté le script côté serveur comme vous le souhaitez ... pls voir la partie éditée –

0

Vous avez juste besoin de publier des valeurs par http sur un script PHP sur votre serveur qui sauvegardera ces valeurs dans votre fichier ou dans une base de données.

+0

Et comment faire exactement cela? – Pkmmte

+0

En apprenant certains php de base et de comprendre comment cela fonctionne pour envoyer des données à un script. Vous pouvez l'envoyer en appelant une url qui ressemblerait à "http://yourserver.org/saveerrrors.php?error=blabla&time=01011970 (ce serait une demande d'obtention, mais un poste serait mieux adapté pour le travail). – galex

Questions connexes