您的位置:首页 > 理论基础 > 计算机网络

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

2014-08-02 22:38 891 查看
服务器端代码

@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;

@Override
protected 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>() {

@Override
public 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>() {

@Override
public void onResponse(JSONObject arg0) {
try {
mTextView.append(arg0.getString("json1"));
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
queue.add(jsonObjectRequest);

ImageRequest request = new ImageRequest(imageUrl,
new Response.Listener<Bitmap>() {
@Override
public 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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐