|
@@ -20,28 +20,29 @@ class ChatVM : BaseViewModel() {
|
|
|
HttpManager.getApi(Service::class.java).chat(ChatData("我的代办任务有哪些?"))
|
|
HttpManager.getApi(Service::class.java).chat(ChatData("我的代办任务有哪些?"))
|
|
|
.subscribeOn(Schedulers.io())
|
|
.subscribeOn(Schedulers.io())
|
|
|
.subscribe({ body ->
|
|
.subscribe({ body ->
|
|
|
- val sb = StringBuilder()
|
|
|
|
|
|
|
+ var sb = ""
|
|
|
body.charStream().buffered().use { reader ->
|
|
body.charStream().buffered().use { reader ->
|
|
|
try {
|
|
try {
|
|
|
var line: String?
|
|
var line: String?
|
|
|
while (reader.readLine().also { line = it } != null) {
|
|
while (reader.readLine().also { line = it } != null) {
|
|
|
val l = line!!
|
|
val l = line!!
|
|
|
if (l.isNotEmpty()) {
|
|
if (l.isNotEmpty()) {
|
|
|
- val model = GsonImplHelp.get().toObject(l, ChatModel::class.java)
|
|
|
|
|
|
|
+ val json = if (l.startsWith("data:")) l.removePrefix("data:").trim() else l
|
|
|
|
|
+ val model = GsonImplHelp.get().toObject(json, ChatModel::class.java)
|
|
|
if (t != model.type) {
|
|
if (t != model.type) {
|
|
|
- sb.clear()
|
|
|
|
|
|
|
+ sb = ""
|
|
|
}
|
|
}
|
|
|
t = model.type
|
|
t = model.type
|
|
|
if (model.type == "string") {
|
|
if (model.type == "string") {
|
|
|
val model1 =
|
|
val model1 =
|
|
|
- GsonImplHelp.get().toObject(l, ChatModel1::class.java)
|
|
|
|
|
- sb.appendLine(model1.data)
|
|
|
|
|
|
|
+ GsonImplHelp.get().toObject(json, ChatModel1::class.java)
|
|
|
|
|
+ sb+=model1.data
|
|
|
} else {
|
|
} else {
|
|
|
val model2 =
|
|
val model2 =
|
|
|
- GsonImplHelp.get().toObject(l, ChatModel2::class.java)
|
|
|
|
|
- sb.appendLine(model2.data.content)
|
|
|
|
|
|
|
+ GsonImplHelp.get().toObject(json, ChatModel2::class.java)
|
|
|
|
|
+ sb+=model2.data.content
|
|
|
}
|
|
}
|
|
|
- result.postValue(sb.toString())
|
|
|
|
|
|
|
+ result.postValue(sb)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
} catch (e: Exception) {
|
|
} catch (e: Exception) {
|