В моем приложении для Android я пытаюсь отправить List<MyClass> list
через Retrofit в базу данных моего сервера. Достигнуты некоторые веб-сервисы и сценарии, но с запросом в массиве мне нужна рука. Мне нужно знать, как отправить запрос от почтальона и обработать его с помощью скрипта (node.sj)
- Это моя таблица базы данных (
kontrol
) наphpAdmin
стороне
ogr_id
tur_id
и durum_id
— это поля моего объекта класса.
То, что я пробовал, это сценарий
вар экспресс = требуется ('экспресс'); var utils = require('./custom_utils.js');
module.exports = function(database){ var router = express.Router();
router.post('/', function(req, res, next) {
var nesne = "merhaba";
database.query('INSERT INTO kontrol (ogr_id, tur_id, durum_id,tarih) VALUES ? ',
[Array.from(req.body.ogrenciler).map(function(g){ return [g, nesne, 0]; })], function(err, results, fields){
var n = results.length;
if(err){
console.log(err);
res.json({ status: utils.respondMSG.DB_ERROR });
}else if(n<1){
res.json({status: utils.respondMSG.DB_ERROR});
}else {
res.json({status: utils.respondMSG.SUCCEED});
}
});
});
return router;
};
- Вот мой запрос почтальона
Я могу использовать услуги обратного вызова Retrofit из-за результата почтальона. То, что я пытаюсь сделать, это отправить правильный запрос и написать скрипт для его обработки на стороне сервера.
{ "ogrenciler" : [ { "ogr_id": 17, "tur_id": 1, "durum_id": 2, "tarih": "2017-17-02" }, {"ogr_id": 74, "tur_id": 1 , "durum_id": 1, "tarih": "2017-17-02" } ] }
Как я уже сказал, ogr_id
tur_id
durum_id
- это поля моего объекта списка, также хотелось бы знать, есть ли более эффективный запрос и, конечно же, его краткая сторона. По крайней мере, я надеюсь услышать некоторые решения моей первой попытки
************************* РЕШЕНО - ОТРЕДАКТИРОВАНО *************** **********
- То, что я пытаюсь отправить из Postman, нравится
– Метод модернизации
{
@POST("saveOgrYoklama")
Call<YoklamaStatus> sendYoklamaList2(@Body Yoklama yoklama);
}
- Классы моделей для обработки значений
{
public class Yoklama implements Serializable {
@SerializedName("tarih")
private String tarih;
@SerializedName("ogrenciler")
private ArrayList<YoklamaOgrenciler> ogrenciler;
public class YoklamaOgrenciler implements Serializable {
@SerializedName("ogr_id")
private int ogr_id;
@SerializedName("tur_id")
private int tur_id;
@SerializedName("durum_id")
private int durum_id;
}
}
}
– И сценарий
var express = require('express');
var utils = require('./custom_utils.js');
module.exports = function(database){
var router = express.Router();
router.post('/', function(req, res, next) {
var jsondata = req.body.ogrenciler;
var values = [];
//var mysqlTimestamp = moment(Date.now()).format('YYYY-MM-DD HH:mm:ss');
var st = req.body.tarih;
//console.log(st);
var uzunluk = req.body.ogrenciler.length;
for(var i=0; i< uzunluk; i++)
values.push([ jsondata[i].ogr_id, jsondata[i].tur_id, jsondata[i].durum_id,st ]);
console.log(req.body.ogrenciler);
console.log(values);
console.log(jsondata);
console.log("uzunluk is :"+uzunluk);
console.log("Deneme asds");
database.query('INSERT INTO kontrol (ogr_id, tur_id, durum_id, tarih) VALUES ? ', [values], function(err, results, fields){
var n = results.length;
console.log(results);
console.log("Affected Row Num : "+results.affectedRows);
if(err){
console.log(err);
res.json({ status: utils.respondMSG.DB_ERROR });
}else if(n==NaN){
console.log("result NaN");
res.json({status: utils.respondMSG.SUCCEED});
} else if(n==null){
console.log("result null");
res.json({status: utils.respondMSG.SUCCEED});
}else if(n<1){
console.log("result < 1 ");
res.json({status: utils.respondMSG.SUCCEED});
}else {
res.json({status: utils.respondMSG.SUCCEED});
}
/**/
});
});
return router;
};
Убедитесь, что над методом службы не стоит @FormUrlEncoded. Babanız bu iyiliği yapmaz söyliim. Надеюсь, это поможет другим, потерявшим на этом много дней
INSERT INTO kontrol (ogr_id, tur_id, durum_id, tarih) VALUES ?
- person Gurwinder Singh   schedule 19.02.2017