大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。
专注于为中小企业提供网站设计、成都网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业阜阳免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了近1000家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
HTTP是一个客户端和服务器端请求和应答的标准(TCP)。客户端是终端用户,服务器端是网站。通过使用Web浏览器、网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求。(我们称这个客户端)叫用户代理(user agent)。应答的服务器上存储着(一些)资源,比如HTML文件和图像。(我们称)这个应答服务器为源服务器(origin server)。在用户代理和源服务器中间可能存在 http和其他几种网络协议[1]多个中间层,比如代理,网关,或者隧道(tunnels)。尽管TCP/IP协议是互联网上最流行的应用,HTTP协议并没有规定必须使用它和(基于)它支持的层。 事实上,HTTP可以在任何其他互联网协议上,或者在其他网络上实现。HTTP只假定(其下层协议提供)可靠的传输,任何能够提供这种保证的协议都可以被其使用。通常,由HTTP客户端发起一个请求,建立一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端发送过来的请求。一旦收到请求,服务器(向客户端)发回一个状态行,比如"HTTP/1.1 200 OK",和(响应的)消息,消息的消息体可能是请求的文件、错误消息、或者其它一些信息。 HTTP协议的网页HTTP使用TCP而不是UDP的原因在于(打开一个)一个网页必须传送很多数据,而TCP协议提供传输控制,按顺序组织数据,和错误纠正。通过HTTP或者HTTPS协议请求的资源由统一资源标示符(Uniform Resource Identifiers)(或者,更准确一些,URLs)来标识。
在android9.0以上由于安全性高了,所有不做处理http不能使用,有3中解决方法
1.最简单的方法降级targetSdkVersion的版本
将 targetSdkVersion 将到27或27以下
2.服务器请求http改为https (推荐)
推荐使用这个方法,毕竟https的安全行高
3.兼容http请求
(1):在清单文件中设置networkSecurityConfig属性
(2)在res/xml文件夹下创建network_security_config.xml
Android 7后默认禁止了非HTTPS请求,如果在请求中使用HTTP会报如下错误:
我们可以在Manifest的Application节点配置 networkSecurityConfig 属性来自定网络安全策略,如下:
在 \res\xml 目录下新建 network_security_config.xml 文件:
更多具体描述可以参考 官方文档
客户端会向服务器发出一条 HTTP 请求,服务器收到请求后会返回一些数据给客户端,然后客户端再对这些数据进行解析与处理。
可以使用 HttpURLConnection(官方推荐) 来发送 HTTP 请求。
布局文件:
活动类:
因为在 Android 中不允许在子线程中执行 UI 操作,所以我们通过 runOnUiThread 方法,切换为主线程,然后再更新 UI 元素。
最后记得声明网络权限哦:
OKHttp 是一个处理网络请求的开源项目,目前是 Android 最火热的轻量级框架,由移动支付 Square 公司贡献(该公司还贡献了Picasso)。希望替代 HttpUrlConnection 和 Apache HttpClient。
首先引入 OKHttp 库依赖:
然后点击 Android Studio 右上角的 Sync Now,把库真正加载进来。
修改活动类:
可以在 build() 方法之前连缀很多其他方法来丰富这个 Request 对象。
如果是 POST 请求,那么需要构建 RequestBody 对象,形如:
修改活动类:
注意: new Thread(...) 之后需要执行 start() 才会启动线程哦。
运行:
可以看出,OKHttp 比 HttpURLConnection 更强大:同一个网址,OKHttp 能够正确地返回响应数据哦O(∩_∩)O哈哈~