android 简单获取服务器数据

1、activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.getserverdata.MainActivity" >

    <EditText
        android:id="@+id/et_username"
        android:hint="请输入用户名"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
         >
    </EditText>

    <EditText
        android:id="@+id/et_password"
        android:hint="请输入密码"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textPassword" />

    <Button
        android:onClick="click"
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="登录" />

</LinearLayout>

2.AndroidManifest.xml 配置权限

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.getserverdata"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="21" />
    <uses-permission android:name="android.permission.INTERNET"/>

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

3.get请求

package com.example.getserverdata.service;

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

import com.example.getserverdata.utils.StreamUtil;

public class LoginService {

    public static String loginByGet(String username,String password)
    {

        String path = "http://192.168.1.100:8088/Login.ashx?username="+username+"&password="+password;

        try {
            //创建URL
            URL url = new URL(path);

            //创建http连接
            HttpURLConnection conn = (HttpURLConnection)url.openConnection();
            //设置连接时间
            conn.setConnectTimeout(5000);
            //设置请求方式
            conn.setRequestMethod("GET");

            //获取请求码
            int code = conn.getResponseCode();

            System.out.println("code:"+code);

            if(code==200)
            {
                //请求成功
                //获取响应数据
                InputStream is = conn.getInputStream();
                //得到响应数据
                String result = StreamUtil.readInputStream(is);

                return result;
            }
            else
            {
                //请求失败
                return null;
            }

        } catch (Exception e) {
            e.printStackTrace();
        }

        return null;
    }

}

4.将InputStream转为String

package com.example.getserverdata.utils;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;

public class StreamUtil {

    public static String readInputStream(InputStream is)
    {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        byte[] data = new byte[1024];
        int len = 0;
        try {
            while((len = is.read(data))!=-1)
                baos.write(data, 0, len);
            is.close();
            baos.close();
            return new String(baos.toByteArray());

        } catch (Exception e) {

            e.printStackTrace();
        }  

        return null;
    }
}

5.MainActivity

package com.example.getserverdata;

import com.example.getserverdata.service.LoginService;

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends ActionBarActivity {

    private EditText et_username;
    private EditText et_password;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        et_username = (EditText)findViewById(R.id.et_username);
        et_password = (EditText)findViewById(R.id.et_password);
    }

    public void click(View view)
    {

        final String username = et_username.getText().toString().trim();
        final String password = et_password.getText().toString().trim();

        new Thread(){

            public void run(){

                final String result = LoginService.loginByGet(username, password);

                System.out.println("reuslt:"+result);

                if(result!=null)
                {
                    runOnUiThread(new Runnable(){

                        @Override
                        public void run() {

                            Toast.makeText(MainActivity.this, result, 0).show();
                        }

                    });

                }

                else
                {
                    runOnUiThread(new Runnable(){

                        @Override
                        public void run() {
                            Toast.makeText(MainActivity.this, "获取数据失败", 0).show();
                        }
                    });

                }

            }

        }.start();

    }

}
时间: 2024-10-12 05:30:49

android 简单获取服务器数据的相关文章

nodejs获取服务器数据到页面

const Koa = require('koa'); const Router = require('koa-router'); const app = new Koa(); const router = new Router(); const views = require('koa-views'); const json = require('koa-json'); const onerror = require('koa-onerror'); const bodyparser = req

跨域获取服务器数据方式

学习AJAX跨域获取数据碰到这个问题,特此记录. 理解跨域首先必须要了解同源策略.同源策略是浏览器上为安全性考虑实施的非常重要的安全策略. 同源是什么?URL由协议.域名.端口和路径组成,如果两个URL的协议.域名和端口相同,则表示他们同源. 为什么需要同源? 假设从一个恶意网站打开支付宝或其他重要的页面(通过window.open),如果没有同源限制,恶意网页上的javascript脚本就可以任意操作你打开的支付宝等网页,这是极其危险的. 由于同源策略的限制,XmlHttpRequest只允许

Android中获取网络数据时的分页加载

//此实在Fragment中实现的,黄色部分为自动加载,红色部分是需要注意的和手动加载,    蓝色部分是睡眠时间,自我感觉不用写  ,还有就是手动加载时,不知道为什么进去后显示的就是最后一行,求大神指教 public class Fragment1 extends Fragment{               //加载的第几页        private int index = 0;            private List<News> news=new ArrayList<

2017.12.07 Ajax获取服务器数据并发送到前端

1.前端:在React渲染页面之前就加载服务器数据: componentWillMount() { console.log("aaaaaaaa"); var data2={ action:"queryTaskOfManager" }; Common.getData(JSON.stringify(data2),function (ret) { alert(ret); }); } 2.前端调用这个React生命周期函数: 3.ajax文件封装成组件后,导出: 4.Aja

十一、React 获取服务器数据: axios插件、 fetch-jsonp插件的使用

react获取服务器APi接口的数据: react中没有提供专门的请求数据的模块.但是我们可以使用任何第三方请求数据模块实现请求数据 一.axios 获取Api数据 使用文档:https://www.npmjs.com/package/axios git项目地址:https://github.com/axios/axios axios的作者觉得jsonp不太友好,推荐用CORS方式更为干净(后端运行跨域) npm官网:https://www.npmjs.com,在其搜索:axios即可看到详细说

智能机器人“小昆”的实现(二)获取服务器数据工具类的编写及测试

没有取得图灵机器人认证的朋友可以看上一篇,点击下面的地址即可: http://www.cnblogs.com/fuly550871915/p/4852148.html 已经取得认证的朋友,可以继续往下做了.下面就开始我们的实际代码编写.在这篇文章中,我们要实现通过调用图灵机器人API获取返回的数据的功能.而且搭建相应的测试环境,看看我们这个功能实现的到底正确不正确. 一.获得服务器返回数据的工具类的实现 主要是android中的简单的网络编程知识的运用.代码如下: 1 package com.f

Android WebView 获取网页数据(html)

1. activity_main.layout <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"       xmlns:tools="http://schemas.android.com/tools"       android:layout_width="match_parent"       android:layout_height=

Reactjs之Axios、fetch-jsonp获取后台数据

1.新增知识点 /** Axios获取服务器数据(无法跨域,只能让后台跨域获取数据) react获取服务器APi接口的数据: react中没有提供专门的请求数据的模块.但是我们可以使用任何第三方请求数据模块实现请求数据 axios介绍: https://github.com/axios/axios axios的作者觉得jsonp不太友好,推荐用CORS方式更为干净(后端运行跨域) 1.安装axios模块npm install axios --save / npm install axios --

android 从服务器获取新闻数据并显示在客户端

新闻客户端案例 第一次进入新闻客户端需要请求服务器获取新闻数据,做listview的展示, 为了第二次再次打开新闻客户端时能快速显示新闻,需要将数据缓存到数据库中,下次打开可以直接去数据库中获取新闻直接做展示. 总体步骤: 1.写布局listview ok 2.找到listview,设置条目的点击事件. ok 3.获取数据提供给listview做展示. 3.1:获取本地数据库缓存的新闻数据,让listview显示.如果没有网络不至于显示空界面. 3.2:请求服务器获取新闻数据,是一个json字符