gpt4 book ai didi

java - 如何通过java反射发送HTTP请求

转载 作者:行者123 更新时间:2023-12-01 14:41:07 26 4
gpt4 key购买 nike

我有一个在 Spring 上开发的方法。以下是我的方法:

@PreAuthorize("isAuthenticated() and hasPermission(#request, 'CREATE_REQUISITION')")
@RequestMapping(method = RequestMethod.POST, value = "/trade/createrequisition")
public @ResponseBody
void createRequisition(@RequestBody CreateRequisitionRO[] request,
@RequestHeader("validateOnly") boolean validateOnly) {
logger.debug("Starting createRequisition()...");
for (int i = 0; i < request.length; i++) {
CreateRequisitionRO requisitionRequest = request[i];

// FIXME this has to be removed/moved
requisitionRequest.setFundManager(requisitionRequest.getUserId());
// FIXME might have to search using param level as well
SystemDefault sysDefault = dbFuncs.references.systemDefault
.findByCompanyAndDivisionAndPortfolio(
userContext.getCompany(),
userContext.getDivision(),
requisitionRequest.getPortfolio());
requisitionRequest.setCustodianN(sysDefault.getCustodianN());

gateKeeper.route(requisitionRequest);
}
}

我想通过java反射调用这个方法并获取响应。并比较响应。

tomcat 已启动,用户已登录系统。当tomcat启动时,我必须使用反射来调用该方法。

如何在java反射中做到这一点?

请帮忙,如果可能的话,请向我建议一些意见,如果不可能的话,请支持我提供可能帮助我解决问题的可能性。

编辑:

这是我尝试过的,但它不起作用:

Class cls;
CreateRequisitionRO[] request = new CreateRequisitionRO[10];
try {
//load the HexgenWebAPI at runtime
cls = Class.forName("com.hexgen.api.facade.HexgenWebAPI");
Object obj = cls.newInstance();

Method method = cls.getDeclaredMethod("createRequisition", parames,booleanVal);
method.invoke(obj, request,true);


}catch(Exception ex){
ex.printStackTrace();
System.out.println("status of reflection : "+ex.getCause());
}

致以诚挚的问候安托

最佳答案

根据对评论的回复,您正在尝试测试您的 Spring MVC Controller 。我不认为你有任何理由必须下决心反射(reflection)才能做到这一点。单元测试最好在 Web 容器之外编写和运行。如果你想做集成测试,请查看Spring-MVC-Test ,或使用浏览器测试框架,如 WebDriverHtmlUnit

关于java - 如何通过java反射发送HTTP请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15947551/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com