HttpURLConnection和OKHTTP的使用

HTTP协议访问网络

HttpURLConnection的使用

1、实例
urL url=new URL(网址);
HttpURLconnection connection=url.openConnection();//创建HttpURLConnection对象
connection.setRequsetMethod(" GET “);//提交方式
connection.setConnectTimeout(” 800 ");//设置连接超时时间
connection.setReadTimeout(“8000”);//读取数据超时时间
InputStream in=connection.getInputStream();//获取服务器返回的输入流
connection.disconnect();//关闭连接
//下面是获取输入流进行读取
BufferedReader reader=new BufferedReader(new InputStreamReader(in));
StringBuilder response=new StringBuilder();
string line;
while((line=reader.readLine())!=null){
response.append(line);
}
return response.tostring();//返回一个从服务器得到的字符串
//显示内容一定要在主线程

使用OKHTTP

1、先导入依赖包
compile ’ com.squareup.okhttp3:okhttp:3.4.1 ’
它会下载两个库:Okhttp库和Okio库;okhttp库时okio库的通信基础
2、实例
okHttpClient client=new okHttpClient();
发送创建一个Request对象
Request reques=new Request();
通过url设置目标网络地址
Requsest request=new Request.Builder()
.url(“www.baidu.com”)
.build();
调用OkHttpClient的newCall()方法来创建一个call对象,用它调用execute()方法来发送请求并获取返回数据
Requsest request=client.newCall(request).execute();
放在一个srring中
string responseData=request.body().string();
3、用POST请求(先构建出一个RequestBody 对象来存放待提交的参数)
RequestBody requestBody=new FormBody.Builder();
.add("","")
add("","")
.build();
然后在Request.Builder中调用post(),并将RequestBody对象传入
Requsest request=new Request.Builder()
.url(“www.baidu.com”)
.post(requestBody)
.build();
之后就跟get一样了(调用execute()方法来获取返回数据)

JSON格式的数据解析

如:[
{“id”:“5”,“name”:“”wen},
{“id”:“5”,“name”:“liu”},
{“id”:“5”,“name”:“nan”},
{“id”:“5”,“name”:“nv”}
]
2、数据解析方法
private void parseJsontojosnobject(String jsondata){
try{
JSONArray jsonArray=new JSONArray(jsondata);
for(int i=0;i<jsonArray.length();i++){
JSONObject jsonobject=jsonArray.getJSONObject(i);
String id=jsonobject.getString ( “id” );
String name=jsonobject.getString ( “name” );
//然后放在再自己想要的暂存变量中,如list<>,map<>等;josn数据是键值对的
}
} catch (JSONException e) {
e.printStackTrace ();
}
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值