android客户端通过OkHttp传递给服务器三个参数,服务器端如何用flask接收这些参数,并查询mysql得到一个查询结果,返回客户端一个list,客户端如何接收这个list(Hashmap<String,String>),请给出详细代码
时间: 2023-06-03 17:04:36 浏览: 59
好的,我会根据您的要求回答问题。以下是您所需的代码:
首先是客户端通过OkHttp传递给服务器三个参数的代码:
```java
OkHttpClient client = new OkHttpClient();
// 三个参数,分别是param1,param2,param3
RequestBody requestBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("param1", param1)
.addFormDataPart("param2", param2)
.addFormDataPart("param3", param3)
.build();
Request request = new Request.Builder()
.url(url)
.post(requestBody)
.build();
Response response = client.newCall(request).execute();
String responseData = response.body().string();
```
接下来是服务器端使用Flask接收这些参数的代码,并查询MySQL得到一个查询结果,返回给客户端一个List:
```python
from flask import Flask, request
import pymysql
app = Flask(__name__)
@app.route('/', methods=['POST'])
def get_data():
# 通过request获取客户端传递过来的参数
param1 = request.form.get('param1', '').strip()
param2 = request.form.get('param2', '').strip()
param3 = request.form.get('param3', '').strip()
# 连接MySQL,执行查询操作
db = pymysql.connect(host='localhost', user='root', password='123456', database='test', charset='utf8')
cursor = db.cursor()
sql = """SELECT * FROM table_name WHERE param1=%s AND param2=%s AND param3=%s"""
cursor.execute(sql, (param1, param2, param3))
results = cursor.fetchall()
# 将查询结果封装成List
data = []
for row in results:
item = {
'key1': row[0],
'key2': row[1],
'key3': row[2],
# ...
}
data.append(item)
# 返回查询结果给客户端
return {'data': data}
if __name__ == '__main__':
app.run()
```
最后是客户端接收服务器返回的List的代码:
```java
// 发起网络请求,获取服务器返回的数据
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url(url)
.build();
Response response = client.newCall(request).execute();
String responseData = response.body().string();
// 解析服务器返回的List
List<HashMap<String, String>> dataList = new ArrayList<>();
JSONObject jsonObject = new JSONObject(responseData);
JSONArray dataArray = jsonObject.getJSONArray("data");
for (int i = 0; i < dataArray.length(); i++) {
JSONObject itemObject = dataArray.getJSONObject(i);
HashMap<String, String> itemMap = new HashMap<>();
itemMap.put("key1", itemObject.getString("key1"));
itemMap.put("key2", itemObject.getString("key2"));
itemMap.put("key3", itemObject.getString("key3"));
// ...
dataList.add(itemMap);
}
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)