在Android开发中常常需要访问接口来获取数据,这个时候可以使用HttpURLConnection来连接服务器并获取返回字符串。
我以登陆为例,具体方法如下:
public static String login(String username,String password){
String msg = "";
try {
username = URLEncoder.encode(username,"UTF-8");//这里要注意编码,如果参数含有汉字或是空格(尤其是日期中的空格),不编码会发生错误
password = URLEncoder.encode(password,"UTF-8");
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
//要访问的HttpServlet
String urlStr="http://127.0.0.1:8080/MyProject/getUser?";
//要传递的数
String params ="username="+username+"&password="+password;
urlStr = urlStr+params;
try{
URL url =new URL(urlStr);
//获得连接
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setConnectTimeout(6000);
InputStream in = conn.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in, HTTP.UTF_8));
String line = null;
while ((line = reader.readLine()) != null) {
if(msg==null){
msg=line;
}else{
msg += line;
}
}
reader.close();
in.close();//关闭数据流
conn.disconnect();
}catch(Exception e){
e.printStackTrace();
return null;
}
return msg;
}
这样,该函数返回回来的字符串就是接口返回的字符串,如果该字符串为json格式的,那么按照json去解析便可以了。