Android获取http://www.yemaxgo.com/connect.php这个网址上的数据并显示在UI上
HTTP请求发送JSON数据:
public class TransObjectToWeb {
/**
* 创建方法:将对象传输到 web 端
* @param user
*/
private Boolean flag = false;
public boolean sendToWeb(User user){
try {
// (1)服务器的访问路径
Log.i("TAG","创建连接");
URL url = new URL("http://192.168.0.28:8080/WinSockWeb/WinSockForAndroid");
HttpURLConnection http = (HttpURLConnection) url.openConnection(); //实例化连接对象
http.setDoInput(true); //可读可写
http.setDoOutput(true);
http.setUseCaches(false); //不允许使用缓存
http.setRequestMethod("POST"); //设置传输方式为 post
http.connect(); //创建连接
Log.i("TAG","创建连接成功");
// (2)数据写入流发送至服务器
OutputStream os = http.getOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(os);
BufferedWriter bw = new BufferedWriter(osw);
Log.i("TAG","创建json 对象");
JSONArray jsonArray = new JSONArray(); //创建 json 对象
JSONObject jsonObject = new JSONObject();
jsonObject.put("username",user.getUsername()); //写入对象数据
jsonObject.put("gender",user.getGender());
jsonObject.put("age",user.getAge());
jsonArray.put(jsonObject);
bw.write(jsonArray.toString());
bw.flush();
// (3)数据读取流接收数据
InputStream is = http.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String result = br.readLine(); //获取web 端返回的数据
if (result.equals("succeed")) { //如果返回数据为 succeed 处理成功,否则失败
flag = true;
}
// (4)关闭相关流
if (os != null) os.close();
if (osw != null) osw.close();
if (is != null) is.close();
if (isr != null) isr.close();
if (br != null) br.close();
if (bw != null) bw.close();
} catch (Exception e){e.printStackTrace();}
return flag;
}
}
接受并解析
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8"); //设置编码方式
response.setCharacterEncoding("utf-8");
System.out.println("接收到请求");
User user = null; //初始化接收的传输对象为空
//(1) 获取android 请求,对传输对象的数据进行处理
InputStream is = request.getInputStream();
InputStreamReader isr = new InputStreamReader(is,"utf-8");
BufferedReader br = new BufferedReader(isr);
String userjson = br.readLine();
System.out.println("userjson:"+userjson.toString()); //输出 json 格式数据
try {
JSONArray userarr = new JSONArray(userjson);
JSONObject userobj = userarr.getJSONObject(0);
user = new User(); //实例化 user 对象,否则报空指针异常
user.setUsername(userobj.getString("username"));
user.setGender(userobj.getString("gender"));
user.setAge(userobj.getInt("age"));
System.out.println("该传输对象:\n"
+"姓名: "+user.getUsername()
+"\n性别: "+user.getGender()
+"\n年龄: "+user.getAge());
// (2)返回结果,成功或失败
OutputStream os = response.getOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(os,"utf-8");
BufferedWriter bw = new BufferedWriter(osw);
if (user != null)
bw.write("succeed");
else
bw.write("error");
bw.flush();
if (os != null) os.close();
if (osw != null) osw.close();
if (is != null) is.close();
if (isr != null) isr.close();
if (br != null) br.close();
if (bw != null) bw.close();
} catch (Exception e){e.printStackTrace();}
}
https://blog.csdn.net/shun_fzll/article/details/16370151
上面这个非常详细~~之前参考过~~
有图有真相
源代码下载地址:链接:https://pan.baidu.com/s/1hZ6PAHa0ZwJXOihyQLR1dw 密码:xnl3
代码中只写了id speed pm25 time几个字段,剩下的你看着不全,很简单的一看就明白
目录Csdn0816\app\build\outputs\apk下 apk可以真机运行
这是天气预报吗?我之前有个天气预报的demo 你可以看看也是http请求 解析json 界面展示
链接:https://pan.baidu.com/s/1rqK-cdRY1fFd9mSNaJ_E5g 密码:9fzz
https://www.cnblogs.com/hjtdlx/p/3927694.html
public static void httpRequestDemo(){
try {
URL url=new URL("http://www.yemaxgo.com/connect.php");
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection.setDoInput(true);
if(connection.getResponseCode()==200){
InputStream is=connection.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
StringBuffer sBuffer=new StringBuffer();
String str=null;
while ((str=br.readLine())!=null) {
sBuffer.append(str);
}
System.out.println(sBuffer.toString());
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
}
}
https://github.com/iclause/Financing/tree/master/Financing/app,这是我的个人项目,里面包含retrofit+okhttp+rxjava 网络框架+异步处理
http请求可用OkGo https://github.com/jeasonlzy/okhttp-OkGo
json数据解析可用gson https://blog.csdn.net/qq_29078329/article/details/73331005
volley+listview+json了解一下