отправить сервлет JSON на android
у меня есть проблема отправить массив JSON из сервлета в android методом post. я попытался следовать коду в сервлете, чтобы отправить JSON. Чтобы получить от android:
String mode=request.getParameter("mode"); if("login".equals(mode)){ String name=request.getParameter("username"); String password=request.getParameter("password"); System.out.println("recived"+name+","+password);
Чтобы отправить данные на android:
` ArrayList<string> al=new ArrayList<string>(); ResultSet rs=state.executeQuery(sql); while(rs.next()) { al.add(1, rs.getString(0).toString()); al.add(2, rs.getString(1).toString()); al.add(3, rs.getString(2).toString()); al.add(4, rs.getString(3).toString()); } JSONArray json=new JSONArray(); json.addAll(al); out.print(json);`
и я восстановил это в android, чтобы отправить данные в сервлет
HttpClient client=new DefaultHttpClient(); HttpPost getmethod= new HttpPost(url); ArrayList<namevaluepair> namevaluepair=new ArrayList<namevaluepair>(3); namevaluepair.add(new BasicNameValuePair("mode","login")); namevaluepair.add(new BasicNameValuePair("username",name.getText().toString())); namevaluepair.add(new BasicNameValuePair("password",password.getText().toString())); getmethod.setEntity(new UrlEncodedFormEntity(namevaluepair)); HttpResponse httpResponse = client.execute(getmethod);
Для получения данных от сервлета
HttpEntity httpEntity = httpResponse.getEntity(); InputStream is = httpEntity.getContent(); BufferedReader reader = new BufferedReader(new InputStreamReader( is, "iso-8859-1"), 8); StringBuilder sb = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } is.close(); String json = sb.toString(); JSONArray json1=new JSONArray(); jObj = new JSONObject(json); try { // Getting Array of Contacts LOGIN = jsonobj.getJSONArray(NAME); // looping through All Contacts for(int i = 0; i < LOGIN.length(); i++){ JSONObject c = LOGIN.getJSONObject(i); // Storing each json item in variable String id = c.getString(USERNAME); String name = c.getString(CATEGORY); String email = c.getString(PASSWORD); result.setText(email+name+id); } } catch (JSONException e) { e.printStackTrace(); }
я получил данные на сервлете, но я не могу получить данные в android, пожалуйста, помогите..