Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
门心叼龙
okhttp3-example
提交
3de4281d
O
okhttp3-example
项目概览
门心叼龙
/
okhttp3-example
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
okhttp3-example
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
3de4281d
编写于
5月 14, 2020
作者:
门心叼龙
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
code perfect
上级
5831f229
变更
17
隐藏空白更改
内联
并排
Showing
17 changed file
with
570 addition
and
57 deletion
+570
-57
okhttp3-java-example/app/src/main/java/com/mxdl/okhttp3/Main2Activity.java
...ple/app/src/main/java/com/mxdl/okhttp3/Main2Activity.java
+69
-0
okhttp3-java-example/app/src/main/java/com/mxdl/okhttp3/MainActivity.java
...mple/app/src/main/java/com/mxdl/okhttp3/MainActivity.java
+33
-32
okhttp3-java-example/app/src/main/java/com/mxdl/okhttp3/ok_fly/uml/okhttp.puml
...app/src/main/java/com/mxdl/okhttp3/ok_fly/uml/okhttp.puml
+4
-0
okhttp3-java-example/app/src/main/java/com/mxdl/okhttp3/ok_fly1/FlyHttpUtils.java
.../src/main/java/com/mxdl/okhttp3/ok_fly1/FlyHttpUtils.java
+113
-0
okhttp3-java-example/app/src/main/java/com/mxdl/okhttp3/ok_fly1/base/BaseBuidler.java
.../main/java/com/mxdl/okhttp3/ok_fly1/base/BaseBuidler.java
+40
-0
okhttp3-java-example/app/src/main/java/com/mxdl/okhttp3/ok_fly1/base/BaseRequest.java
.../main/java/com/mxdl/okhttp3/ok_fly1/base/BaseRequest.java
+35
-0
okhttp3-java-example/app/src/main/java/com/mxdl/okhttp3/ok_fly1/builder/GetBuilder.java
...ain/java/com/mxdl/okhttp3/ok_fly1/builder/GetBuilder.java
+20
-0
okhttp3-java-example/app/src/main/java/com/mxdl/okhttp3/ok_fly1/builder/PostBuilder.java
...in/java/com/mxdl/okhttp3/ok_fly1/builder/PostBuilder.java
+26
-0
okhttp3-java-example/app/src/main/java/com/mxdl/okhttp3/ok_fly1/call/RequestCall.java
.../main/java/com/mxdl/okhttp3/ok_fly1/call/RequestCall.java
+39
-0
okhttp3-java-example/app/src/main/java/com/mxdl/okhttp3/ok_fly1/request/GetRequst.java
...main/java/com/mxdl/okhttp3/ok_fly1/request/GetRequst.java
+36
-0
okhttp3-java-example/app/src/main/java/com/mxdl/okhttp3/ok_fly1/request/PostRequest.java
...in/java/com/mxdl/okhttp3/ok_fly1/request/PostRequest.java
+33
-0
okhttp3-java-example/app/src/main/java/com/mxdl/okhttp3/ok_fly1/response/OnResponse.java
...in/java/com/mxdl/okhttp3/ok_fly1/response/OnResponse.java
+17
-0
okhttp3-java-example/app/src/main/java/com/mxdl/okhttp3/ok_fly1/uml/okhttp.puml
...pp/src/main/java/com/mxdl/okhttp3/ok_fly1/uml/okhttp.puml
+50
-0
okhttp3-java-example/app/src/main/java/com/mxdl/okhttp3/ok_man/OkHttpManager.java
.../src/main/java/com/mxdl/okhttp3/ok_man/OkHttpManager.java
+5
-6
okhttp3-java-example/app/src/main/java/com/mxdl/okhttp3/ok_man/response/MyCallBack.java
...ain/java/com/mxdl/okhttp3/ok_man/response/MyCallBack.java
+11
-18
okhttp3-java-example/app/src/main/java/com/mxdl/okhttp3/ok_man/uml/OkHttpManager.puml
.../main/java/com/mxdl/okhttp3/ok_man/uml/OkHttpManager.puml
+27
-0
okhttp3-java-example/app/src/main/res/layout/activity_main2.xml
...3-java-example/app/src/main/res/layout/activity_main2.xml
+12
-1
未找到文件。
okhttp3-java-example/app/src/main/java/com/mxdl/okhttp3/Main2Activity.java
浏览文件 @
3de4281d
...
...
@@ -10,6 +10,10 @@ import android.widget.TextView;
import
com.google.gson.Gson
;
import
com.mxdl.okhttp3.bean.User
;
import
com.mxdl.okhttp3.ok_fly1.FlyHttpUtils
;
import
com.mxdl.okhttp3.ok_fly1.response.OnResponse
;
import
com.mxdl.okhttp3.response.AddUserResponse
;
import
com.mxdl.okhttp3.response.BaseResponse
;
import
java.io.IOException
;
...
...
@@ -107,4 +111,69 @@ public class Main2Activity extends AppCompatActivity {
}
});
}
public
void
login1
(
View
view
)
{
FlyHttpUtils
.
getInstance
()
.
get
()
.
url
(
"http://192.168.0.189:8080/user/login"
)
.
addParams
(
"username"
,
"mxdl"
)
.
addParams
(
"password"
,
"123456"
)
.
builder
()
.
buildCall
().
execute
(
new
OnResponse
<
BaseResponse
>()
{
@Override
public
void
onStart
()
{
Log
.
v
(
"MYTAG"
,
"onStart start..."
);
}
@Override
public
void
onSucc
(
BaseResponse
response
)
{
Log
.
v
(
"MYTAG"
,
"onSucc start..."
);
Log
.
v
(
"MYTAG"
,
response
.
toString
());
}
@Override
public
void
onFail
(
Exception
e
)
{
Log
.
v
(
"MYTAG"
,
"onFail start..."
);
}
@Override
public
void
onComplete
()
{
Log
.
v
(
"MYTAG"
,
"onComplete start..."
);
}
});
}
public
void
addUser1
(
View
view
)
{
FlyHttpUtils
.
getInstance
()
.
post
()
.
url
(
"http://192.168.0.189:8080/user/addUser"
)
.
body
(
new
User
(
"zhangsan"
,
123456
))
.
builder
()
.
buildCall
().
execute
(
new
OnResponse
<
AddUserResponse
>()
{
@Override
public
void
onStart
()
{
Log
.
v
(
"MYTAG"
,
"onStart start..."
);
}
@Override
public
void
onSucc
(
AddUserResponse
response
)
{
Log
.
v
(
"MYTAG"
,
"onSucc start..."
);
Log
.
v
(
"MYTAG"
,
response
.
toString
());
}
@Override
public
void
onFail
(
Exception
e
)
{
Log
.
v
(
"MYTAG"
,
"onFail start..."
);
}
@Override
public
void
onComplete
()
{
Log
.
v
(
"MYTAG"
,
"onComplete start..."
);
}
});
}
}
okhttp3-java-example/app/src/main/java/com/mxdl/okhttp3/MainActivity.java
浏览文件 @
3de4281d
...
...
@@ -128,32 +128,34 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
* 原生的get请求
*/
private
void
login
()
{
//创建个http客户端
OkHttpClient
client
=
new
OkHttpClient
();
//构建一个url
HttpUrl
httpUrl
=
HttpUrl
.
parse
(
"http://192.168.31.105:8080/user/login"
).
newBuilder
()
.
addQueryParameter
(
"userName"
,
"mxdl"
)
.
addQueryParameter
(
"passWord"
,
"123456"
).
build
();
//根据url创建一个request
Request
loginRequest
=
new
Request
.
Builder
().
url
(
httpUrl
).
build
();
//根据request创建一个call
Call
call
=
client
.
newCall
(
loginRequest
);
//开启一个异步请求
call
.
enqueue
(
new
Callback
()
{
@Override
public
void
onFailure
(
Call
call
,
IOException
e
)
{
Log
.
v
(
"MYTAG"
,
"onFailure start..."
);
Log
.
v
(
"MYTAG"
,
e
.
toString
());
}
Log
.
v
(
"MYTAG"
,
"login start..."
);
new
Thread
(
new
Runnable
()
{
@Override
public
void
onResponse
(
Call
call
,
Response
response
)
throws
IOException
{
Log
.
v
(
"MYTAG"
,
"onSucc start..."
);
Log
.
v
(
"MYTAG"
,
response
.
body
().
string
());
public
void
run
()
{
//1.创建一个HttpClient
OkHttpClient
httpClient
=
new
OkHttpClient
.
Builder
().
build
();
//2.创建一个request请求
//String url = "http://192.168.0.189:8080/user/login?username=mxdl&password=123456";
String
url
=
"http://192.168.0.189:8080/user/login"
;
HttpUrl
httpUrl
=
HttpUrl
.
get
(
url
).
newBuilder
()
.
addQueryParameter
(
"username"
,
"mxdl"
)
.
addQueryParameter
(
"password"
,
"123456"
)
.
build
();
Request
loginRequst
=
new
Request
.
Builder
().
url
(
httpUrl
).
build
();
//3.创建一个请求命令
Call
loginCall
=
httpClient
.
newCall
(
loginRequst
);
//4.发起一个同步的请求
try
{
Response
loginResponse
=
loginCall
.
execute
();
Log
.
v
(
"MYTAG"
,
loginResponse
.
body
().
string
());
}
catch
(
IOException
e
)
{
Log
.
v
(
"MYTAG"
,
e
.
toString
());
}
}
});
})
.
start
()
;
}
/**
...
...
@@ -164,7 +166,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
OkHttpClient
client
=
new
OkHttpClient
();
//构建一个request请求
final
Request
request
=
new
Request
.
Builder
().
url
(
"http://192.168.31.105:8080/user/addUser"
)
.
post
(
RequestBody
.
create
(
MediaType
.
parse
(
"application/json;charset=utf-8"
),
"{\"user
Name\":\"mxdl\",\"passW
ord\":123456}"
))
.
post
(
RequestBody
.
create
(
MediaType
.
parse
(
"application/json;charset=utf-8"
),
"{\"user
name\":\"mxdl\",\"passw
ord\":123456}"
))
.
build
();
//根据request创建一个call命令
Call
call
=
client
.
newCall
(
request
);
...
...
@@ -190,11 +192,11 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
private
void
login1
()
{
//把登录的参数放在HashMap里
HashMap
<
String
,
String
>
params
=
new
HashMap
<>();
params
.
put
(
"user
N
ame"
,
"mxdl"
);
params
.
put
(
"pass
W
ord"
,
"123456"
);
params
.
put
(
"user
n
ame"
,
"mxdl"
);
params
.
put
(
"pass
w
ord"
,
"123456"
);
//传入url,参数,回调开始请求
OkHttpManager
.
getInstance
().
get
(
"http://192.168.
31.105
:8080/user/login"
,
params
,
new
OnResponse
<
BaseResponse
>()
{
OkHttpManager
.
getInstance
().
get
(
"http://192.168.
0.189
:8080/user/login"
,
params
,
new
OnResponse
<
BaseResponse
>()
{
@Override
public
void
onStart
()
{
Log
.
v
(
"MYTAG"
,
"onStart..."
);
...
...
@@ -227,7 +229,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
User
user
=
new
User
(
"mxdl"
,
111
);
//传入url,User和回调开启添加一个用户的请求
OkHttpManager
.
getInstance
().
post
(
"http://192.168.
31.105
:8080/user/addUser"
,
user
,
new
OnResponse
<
AddUserResponse
>()
{
OkHttpManager
.
getInstance
().
post
(
"http://192.168.
0.189
:8080/user/addUser"
,
user
,
new
OnResponse
<
AddUserResponse
>()
{
@Override
public
void
onStart
()
{
Log
.
v
(
"MYTAG"
,
"onStart..."
);
...
...
@@ -237,7 +239,6 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
public
void
onSucc
(
AddUserResponse
resDTO
)
{
Log
.
v
(
"MYTAG"
,
"onSucc..."
);
Log
.
v
(
"MYTAG"
,
resDTO
.
toString
());
Log
.
v
(
"MYTAG"
,
resDTO
.
toString
());
}
@Override
...
...
@@ -258,7 +259,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
*/
private
void
login2
()
{
OkHttpUtils
.
get
()
.
url
(
"http://192.168.
31.105
:8080/user/login"
)
.
url
(
"http://192.168.
0.189
:8080/user/login"
)
.
addParams
(
"userName"
,
"mxdl"
)
.
addParams
(
"passWord"
,
"123456"
)
.
build
()
...
...
@@ -291,7 +292,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
*/
private
void
addUser2
()
{
OkHttpUtils
.
postString
()
.
url
(
"http://192.168.
31.105
:8080/user/addUser"
)
.
url
(
"http://192.168.
0.189
:8080/user/addUser"
)
.
content
(
new
User
(
"aaa"
,
111
))
.
mediaType
(
MediaType
.
parse
(
"application/json;charset=utf-8"
))
.
build
()
...
...
okhttp3-java-example/app/src/main/java/com/mxdl/okhttp3/ok_fly/uml/okhttp.puml
浏览文件 @
3de4281d
...
...
@@ -34,5 +34,9 @@ PostRequest --> BaseRequestBuilder
RequestCall --> BaseRequest
RequestCall --> BaseCallback
class OkHttpUtils{
public GetBuilder get();
public PostBuilder post();
}
OkHttpUtils --> RequestCall
@enduml
\ No newline at end of file
okhttp3-java-example/app/src/main/java/com/mxdl/okhttp3/ok_fly1/FlyHttpUtils.java
0 → 100644
浏览文件 @
3de4281d
package
com.mxdl.okhttp3.ok_fly1
;
import
android.os.Handler
;
import
android.os.Looper
;
import
com.facebook.stetho.common.ExceptionUtil
;
import
com.google.gson.Gson
;
import
com.mxdl.okhttp3.ok_fly1.builder.GetBuilder
;
import
com.mxdl.okhttp3.ok_fly1.builder.PostBuilder
;
import
com.mxdl.okhttp3.ok_fly1.call.RequestCall
;
import
com.mxdl.okhttp3.ok_fly1.response.OnResponse
;
import
java.io.IOException
;
import
java.lang.reflect.ParameterizedType
;
import
java.util.concurrent.Executor
;
import
okhttp3.Call
;
import
okhttp3.Callback
;
import
okhttp3.OkHttpClient
;
import
okhttp3.Response
;
/**
* Description: <FlyHttpUtils><br>
* Author: mxdl<br>
* Date: 2020/5/14<br>
* Version: V1.0.0<br>
* Update: <br>
*/
public
class
FlyHttpUtils
{
private
OkHttpClient
okHttpClient
;
private
MainUiTherad
mainUiTherad
=
new
MainUiTherad
();
class
MainUiTherad
implements
Executor
{
Handler
handler
=
new
Handler
(
Looper
.
getMainLooper
());
@Override
public
void
execute
(
Runnable
command
)
{
handler
.
post
(
command
);
}
}
private
FlyHttpUtils
()
{
okHttpClient
=
new
OkHttpClient
.
Builder
().
build
();
}
public
static
FlyHttpUtils
getInstance
()
{
return
FlyHttpUtilsHolder
.
flyHttpUtils
;
}
public
static
class
FlyHttpUtilsHolder
{
public
static
FlyHttpUtils
flyHttpUtils
=
new
FlyHttpUtils
();
}
public
<
T
>
void
execute
(
RequestCall
requestCall
,
final
OnResponse
<
T
>
onResponse
)
{
requestCall
.
getCall
().
enqueue
(
new
Callback
()
{
@Override
public
void
onFailure
(
Call
call
,
final
IOException
e
)
{
onFail
(
e
,
onResponse
);
}
@Override
public
void
onResponse
(
Call
call
,
final
Response
response
)
{
try
{
if
(
response
.
isSuccessful
())
{
final
String
body
=
response
.
body
().
string
();
Class
<
T
>
tClass
=
(
Class
<
T
>)
((
ParameterizedType
)
onResponse
.
getClass
().
getGenericSuperclass
()).
getActualTypeArguments
()[
0
];
final
T
t
=
new
Gson
().
fromJson
(
body
,
tClass
);
onSucc
(
t
,
onResponse
);
}
else
{
onFail
(
new
Exception
(
"未知异常"
),
onResponse
);
}
}
catch
(
final
IOException
e
)
{
onFail
(
e
,
onResponse
);
}
}
});
}
private
<
T
>
void
onFail
(
final
Exception
e
,
final
OnResponse
<
T
>
onResponse
)
{
mainUiTherad
.
execute
(
new
Runnable
()
{
@Override
public
void
run
()
{
if
(
onResponse
!=
null
)
{
onResponse
.
onFail
(
e
);
onResponse
.
onComplete
();
}
}
});
}
private
<
T
>
void
onSucc
(
final
T
t
,
final
OnResponse
<
T
>
onResponse
)
{
mainUiTherad
.
execute
(
new
Runnable
()
{
@Override
public
void
run
()
{
if
(
onResponse
!=
null
)
{
onResponse
.
onSucc
(
t
);
onResponse
.
onComplete
();
}
}
});
}
public
OkHttpClient
getOkHttpClient
()
{
return
okHttpClient
;
}
public
GetBuilder
get
()
{
return
new
GetBuilder
();
}
public
PostBuilder
post
()
{
return
new
PostBuilder
();
}
}
okhttp3-java-example/app/src/main/java/com/mxdl/okhttp3/ok_fly1/base/BaseBuidler.java
0 → 100644
浏览文件 @
3de4281d
package
com.mxdl.okhttp3.ok_fly1.base
;
import
java.util.HashMap
;
/**
* Description: <BaseBuidler><br>
* Author: mxdl<br>
* Date: 2020/5/14<br>
* Version: V1.0.0<br>
* Update: <br>
*/
public
abstract
class
BaseBuidler
<
T
>
{
//请求的url
protected
String
url
;
//请求的Headders
protected
HashMap
<
String
,
String
>
headers
=
new
HashMap
<>();
//请求的参数
protected
HashMap
<
String
,
String
>
parsms
=
new
HashMap
<>();
//构建url
public
T
url
(
String
url
)
{
this
.
url
=
url
;
return
(
T
)
this
;
}
//构建一个header参数
public
T
addHeader
(
String
key
,
String
value
)
{
headers
.
put
(
key
,
value
);
return
(
T
)
this
;
}
//构建一个请求参数
public
T
addParams
(
String
key
,
String
value
)
{
parsms
.
put
(
key
,
value
);
return
(
T
)
this
;
}
//最终要构建的对象
public
abstract
BaseRequest
builder
();
}
\ No newline at end of file
okhttp3-java-example/app/src/main/java/com/mxdl/okhttp3/ok_fly1/base/BaseRequest.java
0 → 100644
浏览文件 @
3de4281d
package
com.mxdl.okhttp3.ok_fly1.base
;
import
com.mxdl.okhttp3.ok_fly1.call.RequestCall
;
import
java.util.HashMap
;
import
okhttp3.Request
;
/**
* Description: <BaseRequest><br>
* Author: mxdl<br>
* Date: 2020/5/14<br>
* Version: V1.0.0<br>
* Update: <br>
*/
public
abstract
class
BaseRequest
{
//请求的url
protected
String
url
;
//请求的Headders
protected
HashMap
<
String
,
String
>
headers
=
new
HashMap
<>();
//请求的参数
protected
HashMap
<
String
,
String
>
parsms
=
new
HashMap
<>();
public
BaseRequest
(
String
url
,
HashMap
<
String
,
String
>
headers
,
HashMap
<
String
,
String
>
parsms
)
{
this
.
url
=
url
;
this
.
headers
=
headers
;
this
.
parsms
=
parsms
;
}
public
RequestCall
buildCall
(){
return
new
RequestCall
(
this
);
}
public
abstract
Request
builderRequest
();
}
okhttp3-java-example/app/src/main/java/com/mxdl/okhttp3/ok_fly1/builder/GetBuilder.java
0 → 100644
浏览文件 @
3de4281d
package
com.mxdl.okhttp3.ok_fly1.builder
;
import
com.mxdl.okhttp3.ok_fly1.base.BaseBuidler
;
import
com.mxdl.okhttp3.ok_fly1.base.BaseRequest
;
import
com.mxdl.okhttp3.ok_fly1.request.GetRequst
;
/**
* Description: <GetBuilder><br>
* Author: mxdl<br>
* Date: 2020/5/14<br>
* Version: V1.0.0<br>
* Update: <br>
*/
public
class
GetBuilder
extends
BaseBuidler
<
GetBuilder
>
{
@Override
public
BaseRequest
builder
()
{
return
new
GetRequst
(
url
,
headers
,
parsms
);
}
}
okhttp3-java-example/app/src/main/java/com/mxdl/okhttp3/ok_fly1/builder/PostBuilder.java
0 → 100644
浏览文件 @
3de4281d
package
com.mxdl.okhttp3.ok_fly1.builder
;
import
com.mxdl.okhttp3.ok_fly1.base.BaseBuidler
;
import
com.mxdl.okhttp3.ok_fly1.base.BaseRequest
;
import
com.mxdl.okhttp3.ok_fly1.request.PostRequest
;
import
java.util.Observable
;
/**
* Description: <PostBuilder><br>
* Author: mxdl<br>
* Date: 2020/5/14<br>
* Version: V1.0.0<br>
* Update: <br>
*/
public
class
PostBuilder
extends
BaseBuidler
<
PostBuilder
>
{
private
Object
body
;
@Override
public
BaseRequest
builder
()
{
return
new
PostRequest
(
url
,
body
,
headers
,
parsms
);
}
public
BaseBuidler
<
PostBuilder
>
body
(
Object
body
){
this
.
body
=
body
;
return
this
;
}
}
okhttp3-java-example/app/src/main/java/com/mxdl/okhttp3/ok_fly1/call/RequestCall.java
0 → 100644
浏览文件 @
3de4281d
package
com.mxdl.okhttp3.ok_fly1.call
;
import
com.mxdl.okhttp3.ok_fly1.FlyHttpUtils
;
import
com.mxdl.okhttp3.ok_fly1.base.BaseRequest
;
import
com.mxdl.okhttp3.ok_fly1.response.OnResponse
;
import
java.io.IOException
;
import
okhttp3.Call
;
import
okhttp3.Callback
;
import
okhttp3.OkHttpClient
;
import
okhttp3.Request
;
import
okhttp3.Response
;
/**
* Description: <RequestCall><br>
* Author: mxdl<br>
* Date: 2020/5/14<br>
* Version: V1.0.0<br>
* Update: <br>
*/
public
class
RequestCall
{
private
BaseRequest
request
;
private
Call
call
;
public
RequestCall
(
BaseRequest
request
)
{
this
.
request
=
request
;
}
public
void
execute
(
OnResponse
response
){
Request
request
=
this
.
request
.
builderRequest
();
call
=
FlyHttpUtils
.
getInstance
().
getOkHttpClient
().
newCall
(
request
);
FlyHttpUtils
.
getInstance
().
execute
(
this
,
response
);
}
public
Call
getCall
()
{
return
call
;
}
}
okhttp3-java-example/app/src/main/java/com/mxdl/okhttp3/ok_fly1/request/GetRequst.java
0 → 100644
浏览文件 @
3de4281d
package
com.mxdl.okhttp3.ok_fly1.request
;
import
com.mxdl.okhttp3.ok_fly1.base.BaseRequest
;
import
java.util.HashMap
;
import
java.util.Iterator
;
import
java.util.Set
;
import
okhttp3.HttpUrl
;
import
okhttp3.Request
;
/**
* Description: <GetRequst><br>
* Author: mxdl<br>
* Date: 2020/5/14<br>
* Version: V1.0.0<br>
* Update: <br>
*/
public
class
GetRequst
extends
BaseRequest
{
public
GetRequst
(
String
url
,
HashMap
<
String
,
String
>
headers
,
HashMap
<
String
,
String
>
parsms
)
{
super
(
url
,
headers
,
parsms
);
}
@Override
public
Request
builderRequest
()
{
HttpUrl
.
Builder
builder
=
HttpUrl
.
parse
(
url
).
newBuilder
();
if
(!
parsms
.
isEmpty
()){
Iterator
<
String
>
iterator
=
parsms
.
keySet
().
iterator
();
while
(
iterator
.
hasNext
()){
String
key
=
iterator
.
next
();
builder
.
addQueryParameter
(
key
,
parsms
.
get
(
key
));
}
}
return
new
Request
.
Builder
().
url
(
builder
.
build
()).
build
();
}
}
okhttp3-java-example/app/src/main/java/com/mxdl/okhttp3/ok_fly1/request/PostRequest.java
0 → 100644
浏览文件 @
3de4281d
package
com.mxdl.okhttp3.ok_fly1.request
;
import
com.google.gson.Gson
;
import
com.mxdl.okhttp3.ok_fly1.base.BaseRequest
;
import
java.util.HashMap
;
import
okhttp3.MediaType
;
import
okhttp3.Request
;
import
okhttp3.RequestBody
;
/**
* Description: <PostRequest><br>
* Author: mxdl<br>
* Date: 2020/5/14<br>
* Version: V1.0.0<br>
* Update: <br>
*/
public
class
PostRequest
extends
BaseRequest
{
private
Object
body
;
public
PostRequest
(
String
url
,
Object
body
,
HashMap
<
String
,
String
>
headers
,
HashMap
<
String
,
String
>
parsms
)
{
super
(
url
,
headers
,
parsms
);
this
.
body
=
body
;
}
@Override
public
Request
builderRequest
()
{
return
new
Request
.
Builder
().
url
(
url
)
.
post
(
RequestBody
.
create
(
MediaType
.
parse
(
"application/json;charset=utf-8"
),
new
Gson
().
toJson
(
body
)))
.
build
();
}
}
okhttp3-java-example/app/src/main/java/com/mxdl/okhttp3/ok_fly1/response/OnResponse.java
0 → 100644
浏览文件 @
3de4281d
package
com.mxdl.okhttp3.ok_fly1.response
;
/**
* Description: <OnResponse><br>
* Author: mxdl<br>
* Date: 2020/5/14<br>
* Version: V1.0.0<br>
* Update: <br>
*/
public
abstract
class
OnResponse
<
T
>
{
public
abstract
void
onStart
();
public
abstract
void
onSucc
(
T
t
);
public
abstract
void
onFail
(
Exception
e
);
public
abstract
void
onComplete
();
}
okhttp3-java-example/app/src/main/java/com/mxdl/okhttp3/ok_fly1/uml/okhttp.puml
0 → 100644
浏览文件 @
3de4281d
@startuml
abstract class BaseBuidler<T>{
protected String url;
protected HashMap<String, String> headers ;
protected HashMap<String, String> parsms;
public T url(String url);
public T addHeader(String key, String value);
public T addParams(String key, String value) ;
public abstract BaseRequest builder();
}
class GetBuilder extends BaseBuidler{
public BaseRequest builder();
}
class PostBuilder extends BaseBuidler{
private Object body;
public BaseRequest builder();
public BaseBuidler<PostBuilder> body(Object body);
}
abstract class BaseRequest {
protected String url;
protected HashMap<String, String> headers;
protected HashMap<String, String> parsms;
public BaseRequest(String url, HashMap<String, String> headers, HashMap<String, String> parsms){};
public RequestCall buildCall();
public abstract Request builderRequest();
}
class GetRequst extends BaseRequest
class PostRequst extends BaseRequest
GetRequst --> BaseBuidler
PostRequst --> BaseBuidler
class RequestCall {
private Call mCall;
private BaseRequest mBaseRequest;
public <T> void execute(RequestListener<T> listener);
}
RequestCall --> BaseRequest
class OkHttpUtils{
private OkHttpClient okHttpClient;
public GetBuilder get();
public PostBuilder post();
public <T> void execute(RequestCall requestCall, final OnResponse<T> onResponse)
}
OkHttpUtils --> RequestCall
@enduml
\ No newline at end of file
okhttp3-java-example/app/src/main/java/com/mxdl/okhttp3/ok_man/OkHttpManager.java
浏览文件 @
3de4281d
...
...
@@ -42,6 +42,10 @@ public class OkHttpManager {
return
OkHttpManagerHolder
.
mHttpManager
;
}
static
class
OkHttpManagerHolder
{
static
OkHttpManager
mHttpManager
=
new
OkHttpManager
();
}
public
<
T
>
void
post
(
String
url
,
Object
body
,
OnResponse
<
T
>
response
)
{
String
jsonBody
=
new
Gson
().
toJson
(
body
);
MyCallBack
callback
=
new
MyCallBack
(
response
);
...
...
@@ -50,7 +54,7 @@ public class OkHttpManager {
new
Request
.
Builder
()
.
url
(
url
)
.
post
(
RequestBody
.
create
(
MediaType
.
parse
(
"application/json;charset=utf-8"
),
jsonBody
))
.
post
(
RequestBody
.
create
(
MediaType
.
parse
(
"application/json;charset=utf-8"
),
jsonBody
))
.
build
())
.
enqueue
(
callback
);
...
...
@@ -69,9 +73,4 @@ public class OkHttpManager {
mHttpClient
.
newCall
(
request
).
enqueue
(
callBack
);
}
static
class
OkHttpManagerHolder
{
static
OkHttpManager
mHttpManager
=
new
OkHttpManager
();
}
}
okhttp3-java-example/app/src/main/java/com/mxdl/okhttp3/ok_man/response/MyCallBack.java
浏览文件 @
3de4281d
...
...
@@ -71,41 +71,34 @@ public class MyCallBack<T> implements Callback {
}
@Override
public
void
onFailure
(
Call
call
,
IOException
e
)
{
public
void
onFailure
(
Call
call
,
IOException
e
)
{
sendMessage
(
ON_FAIL
,
e
);
}
private
void
sendMessage
(
int
what
,
Object
e
)
{
Message
message
=
new
Message
();
message
.
what
=
ON_FAIL
;
message
.
what
=
what
;
message
.
obj
=
e
;
mHandler
.
sendMessage
(
message
);
}
@Override
public
void
onResponse
(
Call
call
,
Response
response
)
{
public
void
onResponse
(
Call
call
,
Response
response
)
{
try
{
if
(
response
.
isSuccessful
())
{
Message
message
=
new
Message
();
message
.
what
=
ON_SUCC
;
String
string
=
response
.
body
().
string
();
message
.
obj
=
string
;
mHandler
.
sendMessage
(
message
);
sendMessage
(
ON_SUCC
,
string
);
}
else
{
Message
message
=
new
Message
();
message
.
what
=
ON_FAIL
;
mHandler
.
sendMessage
(
message
);
sendMessage
(
ON_FAIL
,
new
Exception
(
"未知异常"
));
}
}
catch
(
Exception
e
)
{
Message
message
=
new
Message
();
message
.
what
=
ON_FAIL
;
message
.
obj
=
e
;
mHandler
.
sendMessage
(
message
);
sendMessage
(
ON_FAIL
,
e
);
}
}
public
void
onStart
()
{
Message
message
=
new
Message
();
message
.
what
=
ON_START
;
mHandler
.
sendMessage
(
message
);
sendMessage
(
ON_START
,
""
);
}
...
...
okhttp3-java-example/app/src/main/java/com/mxdl/okhttp3/ok_man/uml/OkHttpManager.puml
0 → 100644
浏览文件 @
3de4281d
@startuml
abstract class OnResponse{
public abstract void onStart();
public abstract void onSucc(T t);
public abstract void onFail(Exception e);
public abstract void onComplete();
}
interface Callback {
void onFailure(Call call, IOException e);
void onResponse(Call call, Response response);
}
class MyCallBack<T> implements Callback {
private OnResponse<T> mOnResponse;
private Handler mHandler = new Handler(Looper.getMainLooper())
void onFailure(Call call, IOException e);
void onResponse(Call call, Response response);
}
MyCallBack *--> OnResponse
class OkHttpManager {
private OkHttpClient mHttpClient;
public <T> void get(String url, HashMap<String, String> map, OnResponse<T> response)
public <T> void post(String url, Object body, OnResponse<T> response)
}
OkHttpManager o--> MyCallBack
@enduml
\ No newline at end of file
okhttp3-java-example/app/src/main/res/layout/activity_main2.xml
浏览文件 @
3de4281d
...
...
@@ -15,7 +15,18 @@
android:text=
"异步的Post请求"
android:onClick=
"addUser"
/>
<Button
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:text=
"异步的Post请求"
android:onClick=
"login1"
/>
<Button
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:text=
"异步的Post请求"
android:onClick=
"addUser1"
/>
<TextView
android:id=
"@+id/txt_content"
android:layout_width=
"wrap_content"
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录