Browse Source

更新文档JSON请求示例

drake 4 years ago
parent
commit
65e8250fee

+ 45 - 1
docs/index.md

@@ -83,7 +83,51 @@ scopeNetLife { // 创建作用域
 
 ### JSON请求体
 
-在Demo中可以查看具体JSON请求的代码
+这里提供三种创建Json请求的示例代码. 酌情选用
+
+=== "JSON字符串(推荐)"
+    ```kotlin
+    val name = "金城武"
+    val age = 29
+    val measurements = listOf(100, 100, 100)
+
+    scopeNetLife {
+        tv_fragment.text = Post<String>("api") {
+            json("{name:$name, age:$age, measurements:$measurements}")
+        }.await()
+    }
+    ```
+
+=== "JSONObject"
+    ```kotlin
+    val name = "金城武"
+    val age = 29
+    val measurements = listOf(100, 100, 100)
+
+    scopeNetLife {
+        tv_fragment.text = Post<String>("api") {
+            json(JSONObject().run {
+                put("name", name)
+                put("age", age)
+                put("measurements", JSONArray(measurements))
+            })
+        }.await()
+    }
+    ```
+
+=== "自定义的body"
+    ```kotlin
+    val name = "金城武"
+    val age = 29
+    val measurements = listOf(100, 100, 100)
+
+    scopeNetLife {
+        tv_fragment.text = Post<String>("api") {
+            body(MyJsonBody(name, age, measurements))
+        }.await()
+    }
+    ```
+
 对于某些可能JSON请求参数存在固定值, 可以考虑继承JsonBody来扩展出自己的新的Body(), 然后使用`body`函数传入请求中.
 
 > JsonBody实际上也是继承自StringBody

+ 18 - 10
docs/updates.md

@@ -6,17 +6,25 @@
 增加函数[json]来便于快速构建Json请求参数
 
 ```kotlin
-Post<String>("api") {
-    json(JSONObject().run {
-        put("name", "金城武")
-        put("age", "23")
-        put("measurements", JSONArray().run {
-            put(100)
-            put(100)
-            put(100)
+val name = "金城武"
+val age = 29
+val measurements = listOf(100, 100, 100)
+
+scopeNetLife {
+
+    // 创建JSONObject对象
+    tv_fragment.text = Post<String>("api") {
+        json(JSONObject().run {
+            put("name", name)
+            put("age", age)
+            put("measurements", JSONArray(measurements))
         })
-    })
-}.await()
+    }.await()
+
+    // 创建JSON
+    tv_fragment.text = Post<String>("api") {
+        json("{name:$name, age:$age, measurements:$measurements}")
+    }.await()
 ```
 
 ## 2.3.8

+ 16 - 11
sample/src/main/java/com/drake/net/sample/ui/fragment/RequestMethodFragment.kt

@@ -28,8 +28,6 @@ import com.drake.net.*
 import com.drake.net.sample.R
 import com.drake.net.utils.scopeNetLife
 import kotlinx.android.synthetic.main.fragment_async_task.*
-import org.json.JSONArray
-import org.json.JSONObject
 
 
 class RequestMethodFragment : Fragment(R.layout.fragment_request_method) {
@@ -91,17 +89,24 @@ class RequestMethodFragment : Fragment(R.layout.fragment_request_method) {
      * 请求参数为JSON
      */
     private fun JSON() {
+        val name = "金城武"
+        val age = 29
+        val measurements = listOf(100, 100, 100)
+
         scopeNetLife {
+
+            // 创建JSONObject对象
+            // tv_fragment.text = Post<String>("api") {
+            //     json(JSONObject().run {
+            //         put("name", name)
+            //         put("age", age)
+            //         put("measurements", JSONArray(measurements))
+            //     })
+            // }.await()
+
+            // 创建JSON
             tv_fragment.text = Post<String>("api") {
-                json(JSONObject().run {
-                    put("name", "金城武")
-                    put("age", "23")
-                    put("measurements", JSONArray().run {
-                        put(100)
-                        put(100)
-                        put(100)
-                    })
-                })
+                json("{name:$name, age:$age, measurements:$measurements}")
             }.await()
         }
     }