Android网络:发送http请求

本文介绍了Android中如何使用WebView加载网页,并详细阐述了手动发送HTTP请求的两种方式:HttpURLConnection和OkHttp。对于HttpURLConnection,包括设置请求方法、超时时间以及获取输入流等步骤;而对于OkHttp,则涉及添加依赖、创建OkHttpClient实例、构建Request对象以及获取响应数据的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、用WebView来显示一个网页

当然是先要通过findViewById来实例化WebView的对象webview,然后就是调用几个方法

webview.getSetting().setJavaScriptEnable(ture);//让webview支持javascript脚本,当然通过调用不同的方法可以支持一些其他的脚本

webview.setWebViewClient(new WebViewClient();//这段代码的作用是在网页中打开新的网页时,仍然在webview中显示

webview.loadUrl(“http://www.baidu.com”);//显而易见的,loadUrl()中传入的方法就是web要显示的网页了

这里还要申请权限,因为访问了网络。

<uses-permission andorid:name="android.permission.INTERNET" />

二、手动发送HTTP请求

1.使用 HttpURLConnection

主要有5个步骤

①.new 一个URL 传入要访问的网址 eg:URL url = new URL("https://www.baidu.com");

②.实例化HttpURLConnection

HttpURLConnection connection = (HttpURLConnection) url.openConnection();

③.设置HTTP请求使用的方法,主要有"GET"和"POST"

connection.setRequestMethod("GET");

然后还可以进行一些自由定制,比如设置连接超时、读取超时的毫秒数.eg:

connection.setConnectTimeout(8000);//

connection.setReadTimeout(8000);

④.调用getInputStream()从服务器获取输入流

InputStream in = connection.getInputStream();

⑤关闭HTTP连接

connection.discount();

当要向服务器传送数据的时候,就使用"POST"

connection.setRequestMethod("POST");

DataOutputStream out = new DataOutputStream(connection.getOutputStream());

out.writeBytes("username=RuoXue&password=123456");//每条数据都以键值对应,数据和数据之间用'&'隔开

2.使用OkHttp

五个步骤:

①.在dependencies闭包中添加compile 'com.squareup.okhttp3:okhttp:3.4.1'  //3.4.1是版本号

②.创建OkHttpClient的实例

OkHttpClient client = new OkHttpCilent();

③.创建Request对象

Request request = new Request.Bulider().build();

设置目标url地址:

Request request = new Request.Bulider().url("https://www.baidu.com").build();

④.获取服务器返回的数据

Response response = client.newCall(request).excute();

⑤.得到一个String的内容

String responseData = response.body().string();

要向服务器提交数据的话,也是用POST

先要构建出一个RequestBody对象用来存放待提交的数据

RequestBody requestBody = new FormBody.Builder().add("username","RuoXue").add("password","123456").build()

然后调用Request.Builder中的post方法

Request request=Request.Builder.url("https://www.baidu.com")

                           .post(requestBody).build();

后面就和"GET"一样了






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值