android 利用HttpURLConnection联结服务器,服务器端用flask接收并处理信息,返回结果给客户端,怎么实现
时间: 2024-05-11 20:15:44 浏览: 161
android studio实现HttpsURLConnection post请求的发送并接收
3星 · 编辑精心推荐
您可以使用以下代码实现在Android端利用HttpURLConnection请求服务器:
```
try {
URL url = new URL("http://服务器IP地址:端口号/your_route_of_flask"); // 请求的接口地址
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST"); // 请求方法为POST
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setUseCaches(false);
connection.setInstanceFollowRedirects(true);
connection.setRequestProperty("Content-Type", "application/json"); // 请求头部信息
connection.setConnectTimeout(30000); // 设置连接超时时间
connection.connect();
// 发送请求
DataOutputStream outputStream = new DataOutputStream(connection.getOutputStream());
JSONObject params = new JSONObject();
params.put("key1", "value1");
params.put("key2", "value2");
outputStream.writeBytes(params.toString());
outputStream.flush();
outputStream.close();
// 接收响应
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuilder response = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
response.append(line);
}
reader.close();
connection.disconnect();
// 解析响应结果
JSONObject result = new JSONObject(response.toString());
// 处理响应结果
} catch (Exception e) {
e.printStackTrace();
}
```
在服务器端,您可以使用Flask框架实现接收请求和返回响应:
```
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/your_route_of_flask', methods=['POST'])
def your_function_name():
# 处理请求
json_data = request.get_json()
key1 = json_data.get('key1')
key2 = json_data.get('key2')
# 处理结果
result = {
'key3': 'value3',
'key4': 'value4'
}
return jsonify(result)
if __name__ == '__main__':
app.run(host='0.0.0.0', port=端口号)
```
这里需要把`host`设置为`0.0.0.0`,表示服务器可以接受来自外部网络的请求。另外,建议为接口设置路由,以避免其它非预期请求。
阅读全文