2010-07-06 5 views
0

Je veux envoyer des données au serveur du client (Android), ci-dessous est mon format depost http android avec le paramètre

http://101.34.45.45/rawData?data={"userId":"guest1","timestamp":"2010-07-01 08:58:23","wifi":[{"ssid":"guest","rssi":"40"},{"ssid":"guest1","rssi":"80"}]}, 

je suis en train série d'essais, mais ne sert à rien, comment cela peut être fait?

+2

seulement d'un point de vue strictement draconienne, vous ne devriez jamais pousser des données au serveur dans le cadre de l'URL. D'où le nom, les opérations GET doivent uniquement récupérer des données, ne jamais apporter de modifications aux données. Cela est réservé aux opérations POST. –

+0

Etes-vous correctement en train d'échapper l'URL? – bhups

Répondre

0

Sans votre code, il est difficile d'évaluer si vous suivez correctement le processus, mais en fonction de ce que vous nous avez fourni, vous ne cryptez pas correctement les données. Vous devrez encoder les URL avant de les ajouter à l'url. Pour ce faire, utilisez la classe URLEncoder(see the javadoc for that class here).

Pour ce faire, avec votre code, il ressemblerait à quelque chose comme

String url = "http://101.34.45.45/rawData?data="; 
String params = URLEncoder.encode("{\"userId\":\"guest1\",\"timestamp\":\"2010-07-01 08:58:23\",\"wifi\":[{\"ssid\":\"guest\",\"rssi\":\"40\"},{\"ssid\":\"guest1\",\"rssi\":\"80\"}]}", "UTF-8"); 
url = url+params; 
//do the HTTP operation 

* Remarque, pour être complet, le W3C et l'avocat de ne pas utiliser javadoc UTF-8. Je l'ai utilisé ici simplement pour générer un exemple de code.

Si cela ne résout pas votre problème, veuillez poster votre code afin que nous puissions voir ce que vous essayez de faire.

+0

merci frère, ce que je cherche, fonctionne parfaitement, merci beaucoup – Apache

0

Bibliothèque utilisée: http://loopj.com/android-async-http/

private OnClickListener login = new OnClickListener() { 

public void onClick(View view) { 

    AsyncHttpClient myClient = new AsyncHttpClient(); 
    myClient.get(URL, null); 
    myClient.setCookieStore(myCookieStore); 
    myClient.setCookieStore(myCookieStore); 
    String username = ""; 
    String password = ""; 
    RequestParams params1 = new RequestParams(); 
    params1.put("username", username); 
    params1.put("password", password); 
    pd = ProgressDialog.show(this, "", "Signing In..."); 
    myClient.post(URL, params1, 
      new AsyncHttpResponseHandler() { 
       @Override 
       public void onSuccess(String response) { 
        System.out.println("response" + response); 
        pd.dismiss(); 
        if (response.contains("<!--Authorized-->")) { 
        } 
        else { 
         pd.dismiss(); 
         Context mContext = SigninActivity.this; 
         notMatchDialog = new Dialog(mContext); 
         notMatchDialog.setContentView(R.layout.loginfaileddialoglayout); 
         notMatchDialog.setTitle("Login failed"); 
         dismissDialogButton = (Button) notMatchDialog.findViewById(R.id.dismissDialogButton); 
         dismissDialogButton.setOnClickListener(dismissDialog); 
         notMatchDialog.show(); 
        } 
       } 

       @Override 
       public void onFailure(Throwable e, String response) { 
        // TODO Need to figure out different failures and try to help the user. 
       } 
      }); 
} 
};