网络请求

这只是我在学Android过程中对于所学知识的巩固和方便日后查询的学习笔记,能帮助到有需要的和我一样的初学者就更好了

具体实现分为以下步骤
1、 创建访问地址的Url对象
2、创建HttpURLConnection对象
3、为HttpURLConnection对象连缀参数
4、打开输出流解析内容
5、关闭HttpURLConnection对象的网络连接

Url url=new Url("http://www.baidu.com");
HttpURLConnection connection=(HttpURLConnection)url.openConnection();
connection.setRequeseMethod("GET");//发送则为POST
connection.setConnectTimeout(8000);
connection.setReadTime(8000);
InputStream in=connection.getInputStream();
connection.disconnect();

当使用POST时
获取输入流

DataOutputStream out=new DataOutputStream(connection.getOutputStream());
out.writeBytes("user=admin"&"pastword=123456");//以键值对形式并用&分隔

开源OkHttp

具体实现如下
1、添加依赖compile 'com.squareup.okhttp3:okhttp:3.6.0'
2、获取OkHttpClient对象OkHttpClient clent=new OkHttpClient();
3、请求模式
GET
Request request=new Request.Builder().url("http://www.baidu.com").build();
POST

RequestBody body=new FromBody.Builder()
                                                        .add("username" ,"admin")
                                                        .add("pastword" ,"123456")
                                                        .build();
Request request=new Request.Builder()
                                                        .url("http://www.baidu.com")
                                                        .post(body)
                                                        .build();

4、发送请求
Response resopnse=client.newcall(request).execute();
5、获取结果
String responseText response=response.body().string();

可以直接封装成一个工具类

public class HttpUtil{
    public static void sendOkHttpRequest(
                                              String address ,okHttp3.Callback callback){
        OkHttpClient client=new OkHttpClient();
        Request request=new Request.Builder().url(address).build();
        client.newcall(request).enqueue(callback);
//newcall()请求网络结果返回到callback接口中处理
    }    
}

使用时

HttpUtil.sendOkHttpRequest(address ,new callback(){
    @override
    public void onResponse(Call call ,Response response) throws IOException{
        //逻辑,比如String responseText=response.body().string();
    }
    @override
    public void onFailure(Call call ,IOException e){
        //对于请求失败的逻辑处理
    }
});

你可能感兴趣的:(网络请求)