1
This commit is contained in:
54
README.md
54
README.md
@@ -194,8 +194,62 @@
|
||||
|
||||
* 获取用户本周已摄入的营养元素的量: `getUser`得到当前用户的信息,解析后用`MyUser`的`getEaten_elements()`获取到Element对象.里面有各种元素信息
|
||||
|
||||
* **根据多个食材组合来搜菜**
|
||||
|
||||
```java
|
||||
List<String> materialList = new ArrayList<>();
|
||||
materialList.add("土豆");
|
||||
materialList.add("茄子");
|
||||
WebUtil.getInstance().getMenusByMaterials(materialList, new Callback() {
|
||||
@Override
|
||||
public void onFailure(Call call, IOException e) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResponse(Call call, Response response) throws IOException {
|
||||
String json = response.body().string();
|
||||
FoodMenu[] menus = new Gson().fromJson(json, FoodMenu[].class);
|
||||
for (FoodMenu menu : menus) {
|
||||
System.out.println(menu.getName());
|
||||
}
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
* **用户的浏览历史: 添加用户和菜谱的多对多关系**
|
||||
|
||||
```java
|
||||
//获取历史记录 传入username
|
||||
WebUtil.getInstance().getEatenHistory("test5", new Callback() {
|
||||
@Override
|
||||
public void onFailure(Call call, IOException e) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResponse(Call call, Response response) throws IOException {
|
||||
String json = response.body().string();
|
||||
History[] histories = new Gson().fromJson(json, History[].class);
|
||||
System.out.println(Arrays.toString(histories));
|
||||
}
|
||||
});
|
||||
//添加历史记录 传入username 和 Menu的名字
|
||||
WebUtil.getInstance().addEatenHistory("test5", "多味茄子泥", new Callback() {
|
||||
@Override
|
||||
public void onFailure(Call call, IOException e) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResponse(Call call, Response response) throws IOException {
|
||||
String json = response.body().string();
|
||||
History history = new Gson().fromJson(json, History.class);
|
||||
System.out.println(history);
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
* 菜名搜索: `getMenu`方法,传入菜名(菜名通过其他的各种关联方式获取) (menu.calorie是直接爬到的卡路里值,营养元素里的menu.elements.calorie卡路里是根据每个食材的卡路里计算的,相对来说,menu.calorie的值更准确)
|
||||
|
||||
* 功效搜菜 `getMenuClassification`传入分类(功效)参数,比如川菜.搜到所有的川菜名字.然后可以用菜名搜索搜某个菜的详细信息
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
package com.example.ninefourone.nutritionmaster.bean;
|
||||
|
||||
public class History {
|
||||
|
||||
/**
|
||||
* id : 13 time : 2018-11-02T15:35:20.015542+08:00 user : 11 menu : 多味茄子泥
|
||||
*/
|
||||
|
||||
private int id;
|
||||
private String time;
|
||||
private int user;
|
||||
private String menu;
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getTime() {
|
||||
return time;
|
||||
}
|
||||
|
||||
public void setTime(String time) {
|
||||
this.time = time;
|
||||
}
|
||||
|
||||
public int getUser() {
|
||||
return user;
|
||||
}
|
||||
|
||||
public void setUser(int user) {
|
||||
this.user = user;
|
||||
}
|
||||
|
||||
public String getMenu() {
|
||||
return menu;
|
||||
}
|
||||
|
||||
public void setMenu(String menu) {
|
||||
this.menu = menu;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "History{" + "id=" + id + ", time='" + time + '\'' + ", user=" + user + ", menu='" + menu + '\'' + '}';
|
||||
}
|
||||
}
|
||||
@@ -71,7 +71,7 @@ public class WebUtil {
|
||||
|
||||
/**
|
||||
* 获取count个随机菜谱,在回调中解析为一个Menu数组 根据用户的体质,病理,职业推荐
|
||||
*
|
||||
*
|
||||
* @param count
|
||||
* @param callback
|
||||
*/
|
||||
@@ -128,12 +128,6 @@ public class WebUtil {
|
||||
mClient.newCall(request).enqueue(callback);
|
||||
}
|
||||
|
||||
public static void getAllOccupations(Callback callback) {
|
||||
OkHttpClient mClient = new OkHttpClient();
|
||||
Request request = new Request.Builder().url("http://120.77.182.38/occupation/").build();
|
||||
mClient.newCall(request).enqueue(callback);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取体质需要的食材 { "physical_name": "气虚质", "cure_material": [ "人参", "人参须",
|
||||
* "去芯莲子", "去芯莲子(3~4人份)", "土茯苓", ... ] }
|
||||
@@ -336,52 +330,29 @@ public class WebUtil {
|
||||
mClient.newCall(request).enqueue(callback);
|
||||
}
|
||||
|
||||
public static String HttpPost(String requestUrl, String accessToken, String params) throws Exception {
|
||||
System.out.println(params);
|
||||
String generalUrl = "";
|
||||
generalUrl = requestUrl + "?access_token=" + accessToken;
|
||||
System.out.println("发送的连接为:" + generalUrl);
|
||||
URL url = new URL(generalUrl);
|
||||
// 打开和URL之间的连接
|
||||
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
|
||||
System.out.println("打开链接,开始发送请求" + new Date().getTime() / 1000);
|
||||
connection.setRequestMethod("POST");
|
||||
// 设置通用的请求属性
|
||||
connection.setRequestProperty("Content-Type", "application/json");
|
||||
connection.setRequestProperty("Connection", "Keep-Alive");
|
||||
connection.setUseCaches(false);
|
||||
connection.setDoOutput(true);
|
||||
connection.setDoInput(true);
|
||||
public void addEatenHistory(String username, String menuName, Callback callback) {
|
||||
String url = "http://120.77.182.38/myuser/add_eaten_history/";
|
||||
RequestBody formBody = new FormBody.Builder().add("username", username).add("menu", menuName).build();
|
||||
Request request = new Request.Builder().url(url).post(formBody).build();
|
||||
mClient.newCall(request).enqueue(callback);
|
||||
}
|
||||
|
||||
// 得到请求的输出流对象
|
||||
DataOutputStream out = new DataOutputStream(connection.getOutputStream());
|
||||
out.writeBytes(params);
|
||||
out.flush();
|
||||
out.close();
|
||||
public void getEatenHistory(String username, Callback callback) {
|
||||
String url = "http://120.77.182.38/myuser/get_eaten_history?username=" + username;
|
||||
Request request = new Request.Builder().url(url).build();
|
||||
mClient.newCall(request).enqueue(callback);
|
||||
}
|
||||
|
||||
// 建立实际的连接
|
||||
connection.connect();
|
||||
// 获取所有响应头字段
|
||||
Map<String, List<String>> headers = connection.getHeaderFields();
|
||||
// 遍历所有的响应头字段
|
||||
for (String key : headers.keySet()) {
|
||||
System.out.println(key + "--->" + headers.get(key));
|
||||
public void getMenusByMaterials(List<String> materialList, Callback callback) {
|
||||
// POST
|
||||
String url = "http://120.77.182.38/menus/get_menus_by_materials/";
|
||||
FormBody.Builder builder = new FormBody.Builder();
|
||||
for (String material : materialList) {
|
||||
builder.add("material", material);
|
||||
}
|
||||
// 定义 BufferedReader输入流来读取URL的响应
|
||||
BufferedReader in = null;
|
||||
if (requestUrl.contains("nlp"))
|
||||
in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "GBK"));
|
||||
else
|
||||
in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
|
||||
String result = "";
|
||||
String getLine;
|
||||
while ((getLine = in.readLine()) != null) {
|
||||
result += getLine;
|
||||
}
|
||||
in.close();
|
||||
System.out.println("请求结束" + new Date().getTime() / 1000);
|
||||
System.out.println("result:" + result);
|
||||
return result;
|
||||
RequestBody formBody = builder.build();
|
||||
Request request = new Request.Builder().url(url).post(formBody).build();
|
||||
mClient.newCall(request).enqueue(callback);
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
Reference in New Issue
Block a user