2016-04-04 42 views
0

Bahar DenetleyicisiAndroid gönderme json Bu web sitesinde çalıştı

@RequestMapping(value = "/login", produces="application/json;charset=UTF-8" ,method = RequestMethod.POST) 
@ResponseBody 
public int checkLoginInfo(@RequestParam Map<String, String> params) { 
    User user=new Gson().fromJson((String) params.get("user"), User.class); 
    return userService.getUserInfo(user); 
} 

HTML

var params={userid:$("#userid").val(),password:$("#password").val()} 
$ajax({method:"post",data:{user:JSON.stringify(params)},url:"foo.bar"}); 

Bahar. Ama android için Json nesnesini nasıl göndereceğimi bilmiyorum.

data:{user:JSON.stringify(params)} 

Ben böyle

private static String makeJsonMsg() { 
    String retMsg = ""; 

    JSONStringer jsonStringer = new JSONStringer(); 

    try { 


     retMsg = jsonStringer.object() 
        .key("user").object() 
         .key("userid").value("userid") 
         .key("password").value("1234") 
        .endObject() 
       .endObject().toString(); 

    } catch (JSONException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

    return retMsg; 

} 

, test Ama 500 hata döndürür var. Başlığı veya başka bir şey eklemem gerekir mi?

+0

Hata 500, sunucu tarafında bir sorun olduğu anlamına gelir. İstisna yığın izini eklemeniz gerekecek, kod olmadan bu sorunu teşhis etmek için yeterli değildir. – kryger

cevap

0

How to send a JSON object over Request with Android? kontrol Ayrıntılı bilgi için

JSONObject requestObject = new JSONObject(); 
requestObject.put("userid", email); 
requestObject.put("password", password); 

postData("http://your/login/url",requestObject) 

nasıl kullanılır

public void postData(String url,JSONObject obj) { 
    // Create a new HttpClient and Post Header 

    HttpParams myParams = new BasicHttpParams(); 
    HttpConnectionParams.setConnectionTimeout(myParams, 10000); 
    HttpConnectionParams.setSoTimeout(myParams, 10000); 
    HttpClient httpclient = new DefaultHttpClient(myParams); 
    String json=obj.toString(); 

    try { 

     HttpPost httppost = new HttpPost(url.toString()); 
     httppost.setHeader("Content-type", "application/json"); 

     StringEntity se = new StringEntity(obj.toString()); 
     se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json")); 
     httppost.setEntity(se); 

     HttpResponse response = httpclient.execute(httppost); 
     String temp = EntityUtils.toString(response.getEntity()); 
     Log.i("tag", temp); 


    } catch (ClientProtocolException e) { 

    } catch (IOException e) { 
    } 
} 

basit bir yolu. postData yönteminin kredisi @Sachin Gurnani answer

için geçerlidir.

+0

Sorunun yinelenen bir bayrak olduğuna inanıyorsanız, başka bir yanıtı kopyalayıp yapıştırmayın. – kryger

+0

* Bir bağlantıya * gönder * yerine değerli kod * yazmanın ilkesini takip ediyorum ve her zaman * bu yöntemi aldığınız yere kredi verin *. Btw @Sachin Gurnani'yi, KULLANICI gereksinimlerine uygun olarak nasıl kullanacağına dair bir örnek yayınlayarak zenginleştiriyorum. –

İlgili konular