使用volley实现简单的操作,json传输,网络图片显示

来源:互联网 发布:次世代软件 编辑:程序博客网 时间:2024/05/21 18:45

服务器端代码

@WebServlet(urlPatterns = "/get")public class getServlet extends HttpServlet {public void service(HttpServletRequest request, HttpServletResponse response)throws IOException {System.out.println("get");// JSONObject jsonObject = new JSONObject();// try {// jsonObject.put("json", "json");// } catch (JSONException e) {// e.printStackTrace();// }Map<String, Object> result = new HashMap<String, Object>();result.put("json1", "Json");result.put("json2", "Json");response.setContentType("text/html;charset=utf-8");response.getWriter().println(new JSONObject(result));}}
使用servlet部署在tomcat上面,采用json传输数据

在android上与服务器通信

public class MainActivity extends Activity {private ImageView imageView;private NetworkImageView mNetworkImageView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);final TextView mTextView = (TextView) findViewById(R.id.txt);imageView = (ImageView) findViewById(R.id.imageView1);// mNetworkImageView = (NetworkImageView)// findViewById(R.id.networkImageView);RequestQueue queue = Volley.newRequestQueue(this);String url = "http://219.228.251.22:8080/test/get";String imageUrl = "http://imgsrc.baidu.com/forum/pic/item/95d7912397dda144e5e2d08ab1b7d0a20cf4861b.jpg";queue.add(new StringRequest(Method.GET, url, new Listener<String>() {@Overridepublic void onResponse(String arg0) {mTextView.setText(arg0);//mTextView.setText(new JSONObject(arg0).getString("json2"));//可以使用String类型的返回值获取json数据}}, null));JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Method.GET,url, null, new Listener<JSONObject>() {@Overridepublic void onResponse(JSONObject arg0) {try {mTextView.append(arg0.getString("json1"));} catch (JSONException e) {e.printStackTrace();}}}, new Response.ErrorListener() {@Overridepublic void onErrorResponse(VolleyError error) {}});queue.add(jsonObjectRequest);ImageRequest request = new ImageRequest(imageUrl,new Response.Listener<Bitmap>() {@Overridepublic void onResponse(Bitmap bitmap) {imageView.setImageBitmap(bitmap);}}, 0, 0, null, new Response.ErrorListener() {public void onErrorResponse(VolleyError error) {imageView.setImageResource(R.drawable.ic_launcher);}});queue.add(request);}


volley.jar下载

post 传数据

  loginBtn.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                account = idEdit.getText().toString();                password = pwdEdit.getText().toString();                queue = Volley.newRequestQueue(LoginActivity.this);                String url = "http://219.228.251.13:8080/WirelessOrder_Server/servlet/LoginServlet";                StringRequest request = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {                    @Override                    public void onResponse(String arg0) {                        Log.d("login", arg0);                        if (!arg0.equals("0"))                            finish();                    }                }, new Response.ErrorListener() {                    @Override                    public void onErrorResponse(VolleyError error) {                        // error                        Log.d("Error.Response", error.getMessage());                    }                }) {                    protected Map<String, String> getParams() {                        Map<String, String> params = new HashMap<String, String>();                        params.put("account", account);                        params.put("password", password);                        return params;                    }                };                queue.add(request);            }        });
由于继承public abstract class Request<T> implements Comparable<Request<T>> {

这个类,所以需重写下面的方法

    /**     * Returns a Map of parameters to be used for a POST or PUT request.  Can throw     * {@link AuthFailureError} as authentication may be required to provide these values.     *     * <p>Note that you can directly override {@link #getBody()} for custom data.</p>     *     * @throws AuthFailureError in the event of auth failure     */    protected Map<String, String> getParams() throws AuthFailureError {        return null;    }


0 0