失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Android studio获取服务器端json数据——天气预报(仅读取了json文件尚未分析)

Android studio获取服务器端json数据——天气预报(仅读取了json文件尚未分析)

时间:2019-05-01 14:34:30

相关推荐

Android studio获取服务器端json数据——天气预报(仅读取了json文件尚未分析)

Android studio获取服务器端json数据——天气预报

MainActivity.java

import androidx.appcompat.app.AppCompatActivity;import android.app.ProgressDialog;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;import android.widget.Toast;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import .HttpURLConnection;import .URL;public class MainActivity extends AppCompatActivity implements View.OnClickListener {EditText city_name;TextView set_tq;Button get_tq;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);city_name=findViewById(R.id.city_name);get_tq=findViewById(R.id.get_tq);set_tq=findViewById(R.id.set_tq);get_tq.setOnClickListener(this);}@Overridepublic void onClick(View view) {switch (view.getId()) {case R.id.get_tq:city_name.setText("");try {//方法一new Thread(new Runnable() {String url=" /weather_mini?city=灵川";@Overridepublic void run() {try {String html = HtmlService.getHtml(url);Log.i("天气信息",html);set_tq.setText(html);} catch (Exception e) {e.printStackTrace();}}}).start();} catch (Exception e) {e.printStackTrace();}break;}}}

HtmlService.java

package com.weather;import android.util.Log;import java.io.ByteArrayOutputStream;import java.io.InputStream;import .HttpURLConnection;import .URL;public class HtmlService {public static String getHtml(String path) throws Exception {Log.i("path",path);URL url = new URL(path);HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setRequestMethod("GET");conn.setConnectTimeout(5 * 1000);InputStream inStream = conn.getInputStream();//通过输入流获取html数据byte[] data = readInputStream(inStream);//得到html的二进制数据String html = new String(data, "UTF-8");return html;}public static byte[] readInputStream(InputStream inStream) throws Exception {ByteArrayOutputStream outStream = new ByteArrayOutputStream();byte[] buffer = new byte[1024];int len = 0;while ((len = inStream.read(buffer)) != -1) {outStream.write(buffer, 0, len);}inStream.close();return outStream.toByteArray();}}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"xmlns:app="/apk/res-auto"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"android:background="@drawable/one"android:orientation="vertical"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="天气预报"android:textSize="20dp"android:layout_gravity="center"android:layout_margin="20dp"></TextView><EditTextandroid:id="@+id/city_name"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="输入城市名称"android:layout_margin="20dp"></EditText><Buttonandroid:id="@+id/get_tq"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="查询"android:textColor="@color/color_white"android:textSize="25dp"android:background="#6BB618"android:layout_margin="20dp"android:layout_gravity="right"></Button><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/set_tq"android:layout_width="match_parent"android:layout_height="600dp"android:background="@drawable/gray"android:layout_margin="50dp"android:layout_alignParentBottom="true"android:textSize="20dp"></TextView></RelativeLayout></LinearLayout>

如果觉得《Android studio获取服务器端json数据——天气预报(仅读取了json文件尚未分析)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。