Я хотел бы проверить контроллер пружины ниже, который гласит http request attributes
и действует на них. Я могу вызвать код контроллера ниже, набрав localhost:8080/someURL
в свой веб-браузер. Но результат {"id":1,"content":"null and null and null"}
, который указывает null
значения в названии request attributes
. Как отправить запрос на именованный URL-адрес, например localhost:8080/someURL
, который содержит значения для указанного request attributes
, так что я могу подтвердить, что код контроллера приемника работает правильно?Как добавить атрибуты к http-запросу контроллеру весны?
Вот код для контроллера:
import java.util.concurrent.atomic.AtomicLong;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestPa ram;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
@Controller
public class SomeController {
private final AtomicLong counter = new AtomicLong();
@RequestMapping(value = "/someURL", method=RequestMethod.GET)
public @ResponseBody Greeting receiveSMS(HttpServletRequest req){
String att1 = (String) req.getAttribute("att1");
String att2 = (String) req.getAttribute("att2");
String att3 = (String) req.getAttribute("att3");
String total = att1 + " and " + att2 + " and " + att3;
return new Greeting(counter.incrementAndGet(), String.format(total));
}
}
Примечание: Я пытаюсь воссоздать весной the PHP functionality that is given in the script at the following link. Я не написал этот код ниже, если я неправильно сформулирую этот вопрос, я был бы признателен за его пересмотр. Наряду со ссылкой на любое примерное решение, такое как JUNIT или другие средства, с помощью которых можно воссоздать запрос.
Запрос никогда не будет содержать никаких атрибутов, если он исходит из браузера. Единственный способ, которым он может иметь атрибуты, - это если какой-либо другой ресурс помещает эти атрибуты в запрос и затем перенаправляется (или включается) в этот контроллер. Или, если раньше на них размещался какой-либо фильтр или перехватчик на сервере. –
Итак, либо есть такой ресурс раньше, и вы должны протестировать этот ресурс или написать единичный тест, или есть такой ресурс, запрос должен поступать из браузера напрямую, а затем код некорректен. –
@JBNizet Это URL-адрес, который будет помещен в веб-сервис от третьего лица. Вместо того, чтобы отвечать строкой 'total', я вместо этого передам три атрибута запроса в алгоритм. Было проще отправить их в качестве ответа для целей тестирования. Если вы говорите, что лучше 'SYSO'' total' string, я могу это сделать, но мне все равно нужно отправить запрос на url, содержащий именованные атрибуты. Как я могу это сделать? – CodeMed