选择在低版本中运行的,android 7
代码通过学习 https://square.github.io/okhttp/ 中的
sAndroidManifest.xml 中新增权限
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
引入 okIo 和okhttp 包
搜所okio
package com.example.a202007.com.mw.dto;
public class SearchDTO {
private Integer pageNumber;
private Integer pageSize;
private String searchProperty;
private String searchValue;
public Integer getPageNumber() {
return pageNumber;
}
public void setPageNumber(Integer pageNumber) {
this.pageNumber = pageNumber;
}
public Integer getPageSize() {
return pageSize;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
public String getSearchProperty() {
return searchProperty;
}
public void setSearchProperty(String searchProperty) {
this.searchProperty = searchProperty;
}
public String getSearchValue() {
return searchValue;
}
public void setSearchValue(String searchValue) {
this.searchValue = searchValue;
}
}
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import com.example.a202007.R;
import com.example.a202007.com.mw.dto.SearchDTO;
import com.google.gson.Gson;
import java.io.IOException;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
public class OkhttpActivity extends AppCompatActivity {
private TextView okHttp_showcontent;
public static final MediaType JSON= MediaType.get("application/json; charset=utf-8");
private Handler handler = new Handler(){
@Override
public void handleMessage(@NonNull Message msg) {
super.handleMessage(msg);
Log.i("mw",String.valueOf(msg.obj));
okHttp_showcontent.setText((String)msg.obj);
}
};
OkHttpClient client = new OkHttpClient();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_okhttp);
okHttp_showcontent = findViewById(R.id.okHttp_showcontent);
}
public void onOkhttpGetOnClick (View view) throws IOException {
okHttp_showcontent.setText("");
new Thread(new Runnable() {
@Override
public void run() {
Message msg = new Message();
msg.obj = getReq("http://www.mwview.com/v/tool/queryFoodMenuList");
handler.sendMessage(msg);
}
}).start();
}
public void onOkhttpPostOnClick (View view) throws IOException {
okHttp_showcontent.setText("");
new Thread(new Runnable() {
@Override
public void run() {
SearchDTO search = new SearchDTO();
search.setPageNumber(1);
search.setPageSize(20);
search.setSearchProperty("categoryId");
search.setSearchValue("SUBJECT_DETAIL_CATEGORIES_LITERATURE_ART");
String jsonString = new Gson().toJson(new Object());
Message msg = new Message();
msg.obj = postReq("http://www.mwview.com/v/blog/queryBlogList",jsonString);
handler.sendMessage(msg);
}
}).start();
}
public String postReq(String url, String json){
RequestBody body = RequestBody.create(json, JSON);
Request request = new Request.Builder()
.url(url)
.post(body)
.build();
try (Response response = client.newCall(request).execute()) {
return response.body().string();
}catch (IOException e){
Log.e("mw","post=="+e.getMessage());
}
return "";
}
private String getReq(String url) {
Request request = new Request.Builder()
.url(url)
.build();
try (Response response = client.newCall(request).execute()) {
return response.body().string();
}catch (IOException e){
Log.e("mw",e.getMessage());
}
return "";
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
style="@style/commonStyle"
android:onClick="onOkhttpGetOnClick"
android:text="get请求"
></Button>
<Button
style="@style/commonStyle"
android:onClick="onOkhttpPostOnClick"
android:text="post请求"
></Button>
<TextView
style="@style/commonStyle"
android:id="@+id/okHttp_showcontent"
></TextView>
</LinearLayout>
styles.xml
<!-- 字体着色 -->
<style name="commonStyle">
<item name="android:textSize">50dp</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:textColor">@color/colorDepthRed</item>
</style>
colors.xml <color name="colorDepthRed">#DC143C</color>