网络请求与GET请求

public class Http {
    /**
     * 判断有没有网
     */
    public static boolean isNetworkConnected(Context context) {
        //注意要写网络权限
        //判断参数是否为空(必须)
        if (context != null) {
            //getSystemService 获取系统服务
            //获取连接管理器
            ConnectivityManager mConnectivityManager = (ConnectivityManager)
                    context.getSystemService(Context.CONNECTIVITY_SERVICE);
            //获取网络状态
            NetworkInfo info = mConnectivityManager.getActiveNetworkInfo();
            if (info != null) {
                //判断网络是否可用
                return info.isAvailable();
            }
        }
        return false;
    }

    /**
     * 请求数据GET请求
     */
    public static String requestHttpGet(String strUrl) {

        try { //设置url
            URL url = new URL(strUrl);

            //获取HttpURLConnection
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            //设置为get请求
            connection.setRequestMethod("GET");
            //设置连接主机超时时间
            connection.setConnectTimeout(5000);
            //设置从主机读取数据超时
            connection.setReadTimeout(5000);
            //获取请求码(来判断网络请求是否正确)
            int code = connection.getResponseCode();
            //判断请求是否成功
            if (code == HttpURLConnection.HTTP_OK) {
                //如果数据请求成功
                //就获取数据
                InputStream stream = connection.getInputStream();
                BufferedReader reader = new BufferedReader(new InputStreamReader(stream, "utf-8"));
                //拼接字符串
                StringBuilder builder = new StringBuilder();
                //把数据读取从成字符串
                String str = "";
                while ((str = reader.readLine()) != null) {
                    //把一行行数据拼接成一行数据
                    builder.append(str);
                }
                //返回拼接后的数据
                return builder.toString();

            }
            //关闭连接
            connection.disconnect();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }


}

=============================

new Thread(){
                @Override
                public void run() {
                    super.run();
                    //在这里写耗时操作(请求网络数据)
                    //第四步:判断网络状态
                    boolean networkConnected = Http.isNetworkConnected(MainActivity.this);
                    //判断有没有网
                    if (networkConnected){
                        //有网就请求数据
                        String get = Http.requestHttpGet("http://api.expoon.com/AppNews/getNewsList/type/1/p/1");
                        Gson gson=new Gson();
                        JsonBean bean = gson.fromJson(get, JsonBean.class);
                        /**
                        //把数据传递给主线程
                        Message message=new Message();
                        message.what=0;
                        message.obj=bean;
                        handler.sendMessage(message);*/
                    }else{
                       handler.sendEmptyMessageDelayed(1,0);
                    }

                }
            }.start();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WPF(Windows Presentation Foundation)提供了多种方式来执行网络请求,以获取数据或与服务器进行交互。下面是一种常见的方法: 首先,我们需要使用System.Net命名空间中的相关类。其中,最重要的类是HttpClient类,它提供了发送和接收HTTP请求的功能。我们可以创建一个HttpClient对象,并使用它来发送GET请求。 以下是一个简单的示例代码: ```csharp using System; using System.Net.Http; class Program { static async void Main() { // 创建HttpClient对象 using (HttpClient client = new HttpClient()) { // 发送GET请求 HttpResponseMessage response = await client.GetAsync("https://example.com/api/resource"); // 检查响应是否成功 if (response.IsSuccessStatusCode) { // 读取响应内容 string content = await response.Content.ReadAsStringAsync(); // 处理响应数据 Console.WriteLine(content); } else { Console.WriteLine("请求失败:" + response.StatusCode); } } Console.ReadLine(); } } ``` 在以上示例中,我们创建了一个HttpClient对象,并使用GetAsync方法发送一个GET请求。然后,我们检查响应的状态码是否为成功状态,如果是,则读取响应内容并处理数据,否则输出响应错误状态码。 注意,网络请求是一个异步操作,我们使用了async和await关键字来处理异步操作。此外,我们使用了using语句来确保HttpClient对象在使用完成后被正确释放。 以上是一个基本的WPF网络请求的示例,你可以根据自己的需求进行进一步的调整和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值