第十九节http和json解析

Http协议 :超文本传输协议 Hyper Text Transfer Protocol
Http协议是基于TCP协议之上的
有时TCP协议上有TLS SSL 协议,如果包含这两种协议,我们称为HTTPS协议
Http是应用层协议,由请求和响应两部组成,是一个标准的客户端服务器的模型
Http协议是无状态的协议
Http请求永远都是客户端发送请求,服务器端作出响应
Http就是访问网络的
用于获取网络数据:图片,音频,视频,压缩文件,json字符串,xml…..
Http协议是传输数据的短连接,服务器返回数据后就会断开连接
TCP协议是传输数据的长连接,如果不手动断开连接,会一直保持连接状态

java中对于Http请求数据的封装类
1.java原生自带 HttpURLConnection
Http:网络协议
URL:统一资源定位符
Connection:连接
从网络下载图片,保存到磁盘
1.获取URL对象
String path=”资源网址”;
URL url=new URL(path); 抛出畸形URL异常
2.根据URL对象,打开HttpURLConnection连接对象
HttpURLConnection conn=(HttpURLConnection)url.openConnection();
3.设置基本参数
conn.setRequestMethod(GET) ;// 设置本次请求的方式 ,默认GET方式,泄露信息推荐post
conn.setConnectionTimeout(3000);//设置连接超时 3秒
conn.setDoInput(doinput);是否打开输入流 此方法默认为true
conn.setDoOutput()是否打开输出流 默认false
conn.connect() 表示连接
4.判断请求是否成功–获取服务的响应码
int code=conn.getResposeCode();
if(code==200)
{
//5.获取数据—-获取输入流–从流中读取数据
InputStream is=conn.getInputStream();
String name=path.subString(lastindexOf(“/”)+1);//获取图片名称
FileOutputStream fos=new FileOutputStream(pathname);
}
GET 地址+参数
POST 地址 打开输出流 向输出流写出参数
参数 GET POST
1.得到url对象
2.通过url对象,获得HttpURLConnection
3.设置参数
setRequestMethod setDoOutput(true)
4连接
5判断是否连接成功,获取响应吗 输出流写参数
6获取输入流
7操作数据
8关闭流
2.Apache公司提供的第三方框架 HttpClient
String path=”“;
1.导包
在项目中创建libs文件夹,将需要的jar包保存到libs中右键选中所有内容jar Build Path
然后点击add to build path
2.创建HTTPClient对象
HTTPClient client=new DefaultHTTPClient();
3获取请求方式的对象
HttpGet httpget=new HttpGet(path);
4设置请求方式 发起请求 获取响应对象
HttpResponse response=client.execute(httpGet)
5.判断请求是否成功
if(reponse.getStatusLine().getStatusCode()==200){
6获取响应的内容

HTTPEntity entity =res onse.getEntity();
7从响应实体获取流
InputStream is=entity.getContent()
8.操作数据
byte[]buffer=new byte[1024]
int len=0;
EntityUtils
}
POST
1.导 包
2.创 建HTTPClient对象
3 获 取请求方式的对象
4 创建一个提交数据的容器
Listparams=new ArrayList<>();
params.add(new BasicNameValuePair(“参数名称”,”参数内容”));
5 封装容器到请求参数中

HTTPEntity entity=new UrlEncodeedFromEntity(params);
6.设置请求参数到post请求
httpPost.setEntity(entity)
7 从响应实体获取流
HTTPResponse response=client.execute(httpPost);
8 操作数据
if(response.getStatusLine().getStatusCode()==200)
{
9.获取响应的实体
HttpEntity httpEntity=response.getEntity()
10.获取响应实体中的流
httpEntity
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值