import 'package:flutter/material.dart';标签:http,String,chatHistory,textEditingController,5.20,sb,message From: https://www.cnblogs.com/kongxiangzeng/p/18246564
import 'package:http/http.dart' as http;
import 'dart:convert';
class ChatDialog extends StatefulWidget {
@override
_ChatDialogState createState() => _ChatDialogState();
}
class _ChatDialogState extends State<ChatDialog> {
TextEditingController _textEditingController = TextEditingController();
String _chatHistory = '';
Future<void> sendMessage(String message) async {
String apiUrl = 'https://luckycola.com.cn/ai/openwxyy';
Map<String, String> requestBody = {
'ques': message,
'appKey': '66389720f3168d0c06b3c53a',
'uid': 'yJGIAB1714984700233jX5xUMn0on',
'isLongChat': '1',
};
Map<String, String> headers = {
'Content-Type': 'application/json',
};
var response = await http.post(Uri.parse(apiUrl), headers: headers, body: jsonEncode(requestBody));
if (response.statusCode == 200) {
Map<String, dynamic> responseData = jsonDecode(response.body);
setState(() {
var sb = StringBuffer(_chatHistory);
sb.writeln('我: $message');
sb.writeln('知心姐姐: ${responseData['data']['result']}');
_chatHistory = sb.toString();
});
} else {
setState(() {
var sb = StringBuffer(_chatHistory);
sb.writeln('Error connecting to ChatGPT API');
_chatHistory = sb.toString();
});
}
}
@override
Widget build(BuildContext context) {
return AlertDialog(
title: Text('知心树洞'),
content: Column(
mainAxisSize: MainAxisSize.min,
children: [
Expanded(
child: SingleChildScrollView(
child: Text(_chatHistory),
),
),
TextField(
controller: _textEditingController,
decoration: InputDecoration(hintText: '在这里输入你所发送的信息'),
),
ElevatedButton(
onPressed: () {
String message = _textEditingController.text.trim();
if (message.isNotEmpty) {
sendMessage(message);
_textEditingController.clear();
}
},
child: Text('发送'),
),
],
),
);
}
}