HttpURLConnection网络获取天气预报信息

本文介绍了一个简单的Android应用示例,展示了如何使用HttpURLConnection发起网络请求获取天气数据,并通过Log记录返回的内容。此示例包括了编码城市名称、设置超时时间及请求方式等关键步骤。
摘要由CSDN通过智能技术生成

配置android.permission.INTERNET

android.permission.INTERNETimport java.io.ByteArrayOutputStream;

import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;

public class MainActivity extends Activity {

    private static final String TAG = "MainActivity";
    private EditText text;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        text = (EditText) findViewById(R.id.et_text);
        
    }
    
    public void bt(View v){
        new Thread(){
            public void run() {
                //网络数据
                httpcontent();
            }
        }.start();

    }


    private void httpcontent() {
        // TODO Auto-generated method stub
        try {
        String name = text.getText().toString().trim();
        //路径
        String path="http://wthrcdn.etouch.cn/weather_mini?city=";
    
            URL url=new URL(path+URLEncoder.encode(name));
            Log.i(TAG, "name:"+URLEncoder.encode(name, "utf-8"));
            //建立连接
            HttpURLConnection openConnection = (HttpURLConnection) url.openConnection();
            openConnection.setConnectTimeout(5000);
            openConnection.setReadTimeout(5000);
            openConnection.setRequestMethod("GET");
            int responseCode = openConnection.getResponseCode();
            if(responseCode==200){
                InputStream inputStream = openConnection.getInputStream();

                //将获得的文件json转换成字符串
                 ByteArrayOutputStream arrayOutputStream=new ByteArrayOutputStream();
                byte[] buffer=new byte[1024];
                int len=0;
                while((len=inputStream.read(buffer))!=-1){
                    arrayOutputStream.write(buffer, 0, len);
                }

                String str = arrayOutputStream.toString();

//接着gson解析bean类   集合

                Log.i(TAG, "str:"+str);
            }else{
                
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
    };

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值