Я заканчиваю простую весеннюю загрузку веб-сервиса, вот код контроллера
package com.example.ly.FirstWebService;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@RestController
public class HelloController {
Logger logger = LoggerFactory.getLogger(HelloController.class);
@RequestMapping("/")
public String index() {
//logger.trace("This is a TRACE message.");
//logger.debug("This is a DEBUG message.");
//logger.info("This is an INFO message.");
//logger.warn("This is a WARN message.");
//logger.error("You guessed it, an ERROR message.");
return "Greetings from Spring Boot!";
}
@RequestMapping(value = { "/ocs_new" })
@ResponseBody
public Map<String, Object> getRoute(@RequestParam("sid") String id,@RequestParam("calling") String calling,@RequestParam("called") String called,@RequestParam("trunk_in") String trunk_in) {
logger.info("ocs_new command income with sid ." + id);
Map<String, Object> mRet = new HashMap<String, Object>();
mRet.put("duration", 120);
Map<String,Object> map1 = new HashMap<String,Object>();
map1.put("nap","nap256");
map1.put("src","60133878300");
map1.put("dst","800113803088900");
Map<String,Object> map2 = new HashMap<String,Object>();
map2.put("nap","nap369");
map2.put("src","60133878399");
map2.put("dst","800213803088999");
List<Map> jsonObjects = new ArrayList<Map>();
jsonObjects.add(map1);
jsonObjects.add(map2);
mRet.put("routetable",jsonObjects);
mRet.put("next_update_time", 120);
mRet.put("cmd", "ocs_new");
mRet.put("sid", id);
mRet.put("result", 0);
mRet.put("msg", null);
return mRet;
}
@RequestMapping(value = { "/ocs_start" })
@ResponseBody
public Map<String, Object> callstart(@RequestParam("sid") String id,@RequestParam("a_setup_time") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime a_setup_time,@RequestParam("a_connect_time") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime a_connect_time,@RequestParam("b_setup_time") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime b_setup_time,@RequestParam("b_connect_time") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime b_connect_time,@RequestParam("connected_trunk") String connected_trunk) {
logger.info("ocs_start command income with sid ." + id);
Map<String, Object> mRet = new HashMap<String, Object>();
mRet.put("cmd", "ocs_start");
mRet.put("result", 0);
mRet.put("sid", id);
mRet.put("msg", "queued for processing");
return mRet;
}
@RequestMapping(value = { "/ocs_end" })
@ResponseBody
public Map<String, Object> callend(@RequestParam("sid") String id,@RequestParam("duration_a") int duration_a,@RequestParam("duration_b") int duration_b,@RequestParam("a_hangup_time") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime a_hangup_time,@RequestParam("b_hangup_time") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime b_hangup_time) {
logger.info("ocs_end command income with sid ." + id);
Map<String, Object> mRet = new HashMap<String, Object>();
mRet.put("cmd", "ocs_end");
mRet.put("result", 0);
mRet.put("sid", id);
mRet.put("msg", "queued for processing");
return mRet;
}
}
для клиентской стороны, я использую программу на c #, которая использует многопоточность для отправки http-запроса на сервер, потому что я регистрирую каждый запрос, когда он приходит
logger.info("ocs_new command income with sid ." + id);
количество ответов должно совпадать с количеством запросов, но иногда я вижу, что ответ больше, чем запрос. скажем, если я отправлю 5000 запросов, возможно, количество ответов будет 5003.
Есть ли проблемы с моим контроллером?
Я также регистрирую количество запросов на стороне клиента при отправке на сервер, я уверен, что клиент отправит ровно 5000 запросов.