Android Http JSon服务器端和客户端通信
服务器端:
package com.web.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import com.web.model.User; public class JSONServlet extends HttpServlet { /** * Constructor of the object. */ public JSONServlet() { super(); } /** * Destruction of the servlet. <br> */ public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } /** * The doGet method of the servlet. <br> * * This method is called when a form has its tag value method equals to get. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } /** * The doPost method of the servlet. <br> * * This method is called when a form has its tag value method equals to post. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); List<User> list = new ArrayList<User>(); User u1 = new User(); u1.setId(111); u1.setUsername("zhang shan"); u1.setPassword("zs"); User u2 = new User(); u2.setId(222); u2.setUsername("li si"); u2.setPassword("ls"); User u3 = new User(); u3.setId(333); u3.setUsername("wang wu"); u3.setPassword("ww"); list.add(u1); list.add(u2); list.add(u3); JSONArray ja = new JSONArray(); for (Iterator iterator = list.iterator(); iterator.hasNext();) { User user = (User) iterator.next(); JSONObject jobj= new JSONObject(); jobj.put("id", user.getId()); jobj.put("username", user.getUsername()); jobj.put("password", user.getPassword()); ja.add(jobj); } out.write(ja.toString()); out.flush(); out.close(); } /** * Initialization of the servlet. <br> * * @throws ServletException if an error occurs */ public void init() throws ServletException { // Put your code here } }
手机端:
package com.web.activity; import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.ObjectInputStream; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.apache.commons.httpclient.Cookie; import org.apache.commons.httpclient.HttpException; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.httpclient.methods.PostMethod; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.methods.HttpUriRequest; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import org.apache.http.params.HttpConnectionParams; import org.apache.http.params.HttpParams; import org.apache.http.protocol.HTTP; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import com.web.model.User; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class WebclientActivity extends Activity { private TextView hello; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); HttpClient httpclient = new DefaultHttpClient(); String uri="http://10.11.72.108:8086/web/JSONServlet"; HttpPost httpReqest = new HttpPost(uri); try { HttpResponse response = httpclient.execute(httpReqest); HttpEntity entity = response.getEntity(); BufferedReader reader = new BufferedReader(new InputStreamReader(entity.getContent())); StringBuffer sb = new StringBuffer(); String line = null; while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } reader.close(); JSONArray ja = new JSONArray(sb.toString()); StringBuffer sb2 = new StringBuffer(); for (int i = 0; i < ja.length(); i++) { JSONObject jobj= (JSONObject)ja.get(i); sb2.append("id:").append(jobj.getInt("id")).append(" "); sb2.append("用户:").append(jobj.getString("username")).append(" "); sb2.append("密码:").append(jobj.getString("password")).append("\r\n"); } TextView hello = (TextView) findViewById(R.id.helloid); hello.setText(sb2.toString()); } catch (Exception e) { Log.i("uuu", e.toString()); } } }