Skip to content

Commit 92d9dbf

Browse files
author
wing
committed
retrofit
1 parent dab4181 commit 92d9dbf

File tree

9 files changed

+77
-4
lines changed

9 files changed

+77
-4
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@
77
/build
88
/captures
99
.externalNativeBuild
10-
/.idea/misc.xml
10+
/.idea/misc.xml
11+
/.idea

app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
33
package="com.wingsofts.gankclient">
4-
4+
<uses-permission android:name="android.permission.INTERNET"/>
55
<application
66
android:name=".App"
77
android:allowBackup="true"

app/src/main/java/com/wingsofts/gankclient/App.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,19 @@ import javax.inject.Inject
1111
* Created by wing on 16-11-22.
1212
*/
1313
class App :Application(){
14+
init {
15+
instance = this
16+
}
1417
@Inject lateinit var mRetrofit :Retrofit
1518
override fun onCreate() {
1619
super.onCreate()
1720

1821
DaggerApiComponent.builder().apiModule(ApiModule()).appModule(AppModule(this)).build().inject(this)
1922
}
23+
24+
25+
companion object{
26+
lateinit var instance : App
27+
28+
}
2029
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.wingsofts.gankclient.api
2+
3+
import com.wingsofts.gankclient.bean.FuckFood
4+
import com.wingsofts.gankclient.bean.JsonResult
5+
import retrofit2.http.GET
6+
import rx.Observable
7+
8+
/**
9+
* Created by wing on 11/23/16.
10+
*/
11+
interface GankApi{
12+
@GET("data/Android/10/1")
13+
fun getData():Observable<JsonResult<List<FuckFood>>>
14+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.wingsofts.gankclient.bean
2+
3+
/**
4+
* Created by wing on 11/23/16.
5+
*/
6+
data class FuckFood(
7+
val _id: String,
8+
val createdAt: String,
9+
val desc: String,
10+
val images: List<String>,
11+
val publishedAt: String,
12+
val source: String,
13+
val type: String,
14+
val url: String,
15+
val used: Boolean,
16+
val who: String
17+
18+
19+
)
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.wingsofts.gankclient.bean
2+
3+
/**
4+
* Created by wing on 11/23/16.
5+
*/
6+
class JsonResult<T>(val error :Boolean,
7+
val results:T)

app/src/main/java/com/wingsofts/gankclient/di/module/ApiModule.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.wingsofts.gankclient.di.module
22

33
import android.content.Context
4+
import android.util.Log
45
import com.google.gson.Gson
56
import com.google.gson.GsonBuilder
67
import dagger.Module
@@ -40,7 +41,7 @@ class ApiModule {
4041
}
4142
@Provides fun provideInterceptor() :HttpLoggingInterceptor{
4243
val interceptor = HttpLoggingInterceptor{
43-
44+
msg -> Log.d("okhttp",msg)
4445
}
4546
interceptor.level = HttpLoggingInterceptor.Level.BODY
4647
return interceptor
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.wingsofts.gankclient
2+
3+
import android.content.Context
4+
import com.wingsofts.gankclient.api.GankApi
5+
6+
/**
7+
* Created by wing on 11/23/16.
8+
*/
9+
fun Context.createApi():GankApi{
10+
return App.instance.mRetrofit.create(GankApi::class.java)
11+
}

app/src/main/java/com/wingsofts/gankclient/ui/activity/MainActivity.kt

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,25 @@ package com.wingsofts.gankclient.ui.activity
22

33
import android.support.v7.app.AppCompatActivity
44
import android.os.Bundle
5+
import android.util.Log
6+
import android.widget.Toast
7+
import com.wingsofts.gankclient.App
58
import com.wingsofts.gankclient.R
9+
import com.wingsofts.gankclient.createApi
610
import okhttp3.OkHttpClient
11+
import rx.android.schedulers.AndroidSchedulers
712

813
class MainActivity : AppCompatActivity() {
914

1015
override fun onCreate(savedInstanceState: Bundle?) {
1116
super.onCreate(savedInstanceState)
1217
setContentView(R.layout.activity_main)
13-
OkHttpClient.Builder().build()
18+
19+
createApi().getData().observeOn(AndroidSchedulers.mainThread())
20+
.subscribe(
21+
{ Toast.makeText(this,"成功",Toast.LENGTH_SHORT).show()},
22+
{e-> Log.e("wing",e.message)}
23+
)
24+
1425
}
1526
}

0 commit comments

Comments
 (0)