真就是手把手教你如何使用OKHTTP进行网络请求
先说问题,解疑答惑
**1.什么是URL 什么是URI **
URI:统一资源标识符
URL:统一资源定位符
范围来说 URL<URI URL实际上也是一种资源标识符,只不过长得有点像,用来做区分
2.HTTP和HTTPS有什么区别
没什么区别,可能HTTPS会加密,其他好像没什么区别
3.三次握手TCP/IP协议
这个应该是计算机系的同学们都知道的东西吧,这个是《计算机网络》里面有一节网络请求IP地址一章里面学习的,三次握手保证了客户端和服务器的正确连接
此处应该有图片,但是我没有时间去画了,你们去搜下其他人的吧
有些人说三次握手我总是记不住,那你看看我的总结嫩呢
客户端 -- SYN seq=x --> 服务器
~~贾炬山:喂,我是贾炬山 ~~
客户端 <-- SYN ack=x+1 sep=y -- 服务器
老板:喂,我知道你是贾炬山,我是你老板
客户端 -- ack=y+1 --> 服务器
贾炬山:好的老板,你找我干嘛
来人! 上代码~~~
1.我是用的android studio Dolphin 2021.3.1 patch 1 (海豚android)
eg1:使用HTTP访问百度
setp1:Androidmanifest.xml里面添加网络请求权限
xml
<uses-permission android:name="android.permission.INTERNET"/>
step2:新建一个HTTPActivity
java
public class OKHTTPActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_okhttpactivity);
}
}
下面是xml布局,一个很简单webview
xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".OKHTTPActivity">
<WebView
android:id="@+id/webview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:ignore="MissingConstraints" />
</androidx.constraintlayout.widget.ConstraintLayout>
新建一个SendUrlTask的异步方式去send一个String,这里可以传各种东西mipmap等等
java
/**
* 最后一个参数是异步操作doinbackground的一个返回值
* 这个task就是帮我们执行一个url的,所以需要传入一个URL
*/
private class SendUrlTask extends AsyncTask<Void, Void, String> {
private String mUrl;
public SendUrlTask(String url) {
mUrl = url;
}
@Override
protected String doInBackground(Void... voids) {
/**
* 这里就是进行网络请求的操作
*/
try {
HttpUtil.sendUrl(mUrl);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
mWebView.loadData(s,"text/html;charset=utf-8",null);
}
}
这里是HttpUtil里面的代码,按道理应该是固定的格式里面一些东西可以根据实际情况去增删改,核心内容应该不会改变
java
/**
* @param url
* @return
* @throws MalformedURLException 能否解析成功的一个异常
*/
public static String sendUrl(String url) throws IOException {
URL url1 = new URL(url);
HttpURLConnection connection = (HttpURLConnection) url1.openConnection();
connection.setConnectTimeout(5000);
connection.setRequestMethod("GET");
InputStream inputStream = connection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
StringBuffer stringBuffer = new StringBuffer();
String str = null;
while ((str = bufferedReader.readLine()) != null) {
stringBuffer.append(str);
}
return stringBuffer.toString();
}
}
希望兄弟们看完点个赞,复习的时候可以找到