主要有以下几点原因:
1、网络不通,在调用的机器上评一下对方服务器ip或域名;
2、如果接口url用的域名,排查是不是DNS问题,这种问题使用方法1时ping域名应该是不通的,直接ping ip可以通;
3、请求接口时设置的超时时间太短,>
1Springboot整合Swagger2
11pom加swagger依赖
<dependency>
<groupId>iospringfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>292</version>
</dependency>
<!-- <dependency>
iospringfox
springfox-swagger-ui
292
-->
<dependency>
<groupId>comgithubxiaoymin</groupId>
<artifactId>swagger-bootstrap-ui</artifactId>
<version>190</version>
</dependency>
<dependency>
<groupId>ioswaggercorev3</groupId>
<artifactId>swagger-annotations</artifactId>
<version>208</version>
</dependency>
<dependency>
<groupId>ioswaggercorev3</groupId>
<artifactId>swagger-models</artifactId>
<version>208</version>
</dependency>
12添加swagger配置类
@Configuration
@EnableSwagger2
@EnableSwaggerBootstrapUI
//@ConditionalOnExpression("${swaggerenable:true}")
public class Swagger2 {
// @Override
// public voidaddResourceHandlers(ResourceHandlerRegistry registry) {
// registryaddResourceHandler("swagger-uihtml")addResourceLocations("classpath:/META-INF/resources/");
// registryaddResourceHandler("/webjars")addResourceLocations("classpath:/META-INF/resources/webjars/");
// }
@Value("${swaggerenable:true}")
private String enable;
@Value("${swaggerbasePackage}")
private String basePackage;
@Bean
public Docket createRestApi()
{
Predicateselector= PathSelectors none ();
if ("true"equals(enable)) {
selector=PathSelectors any ();
}
//定义全局参数
Listpars = new ArrayList<>();
ParameterBuildertoken = new ParameterBuilder();
tokenname("token")description("token")modelRef( new ModelRef("string"))parameterType("header")required( false )build();
parsadd(tokenbuild());
return new Docket(DocumentationType SWAGGER_2 )
globalOperationParameters(pars) // 全局参数
groupName("demo01")//指定分组
apiInfo(apiInfo())
select()
apis(RequestHandlerSelectors basePackage (basePackage))
// paths(PathSelectorsany())
paths(selector)
build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
title("SpringBoot测试使用 Swagger2 构建RESTful API")
description("springboot demo 接口文档")
version("10")
build();
}
}
13加上swagger启用禁用开关
新建applicationproperties文件
#swagger启用禁用标识true:启用
swaggerenable=true
#swagger扫描需生成文档的包路径
swaggerbasePackage=comtjcspringbootDemocontroller
14Swagger具体注释用法
>
在springMVC中的Controller层中获取页面中的input中用户输入的值的方法:
后台在采集jsp页面表单里面的数据时没有用到传统的requestgetParameter(),而是在controller的传入参数多了几个对象。
import javautilMap;
import javaxservlet>
import javaxservlet>
import orgspringframeworkstereotypeController;
import orgspringframeworkwebbindannotationRequestMapping;
import orgspringframeworkwebservletModelAndView;
import comzylnonglinbaseBaseController;
import comzylnonglinbaseentityVacate;
@Controller
@RequestMapping(value="/admin/qingjia")
public class VacateController extends BaseController{
/
跳转到请假页面
@param req
@param resp
@return
/
@RequestMapping(value="/toVacate")
public ModelAndView toVacate(>
Map<String,Object> context = getRootMap();
return forword("/qingjia/vacate", context);
}
/
提交请假信息
@param vacate
@param req
@param resp
/
@RequestMapping(value="/addVacate")
public void addVacate(Vacate vacate,>
Systemoutprintln(vacategetClassNum());//
Systemoutprintln(vacategetReason());
Systemoutprintln(vacategetsName());
Systemoutprintln(vacategetsNum());
Systemoutprintln(vacategetsPhone());
}
}
Spring MVC:
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts1(现在一般不用),Struts2等。
防止表单重复提交的两种方式
1)通过重定向
采取请求转发的方式完成表单内容的添加会造成内容的重复插入。
当向Servlet发送一条增加记录的请求后,servlet首先向数据库增加一条记录,然后又从数据库中查询出所有数据,接着转发到另一个页面,这时,页面上浏览器的地址显示的是servlet的地址,当用户刷新页面时,又会向servlet发送一条添加请求,这样会导致数据库中重复数据不断增加。
解决办法:采用重定向的方式添加数据不会导致数据的重复插入或删除。
向servlet发送一个添加请求时,这个servlet只执行添加 *** 作,然后重定向到另一个servlet进行数据的查询,最后转发到显示页面。
2)通过Session Token(Session令牌)
当客户端第一次向服务器端发送请求的时候,服务器会通过Token标签,并且会将这个字符串放到session中,然后将这个字符串发送给客户端,在提交之前页面上就有了一个字符串,服务器端也有一个字符串,两个字符串的内容是一样的,当你提交的时候,服务器会比较两个字符串是不是一样的,如果是一样的,就是第一次提交,并且更新服务器端的字符串;如果此时再次重复提交,服务器端的字符串已经发生改变而页面中的那个字符串还没有变,这时,你提交的时候两个字符串就不匹配了,服务器端就会认为是第二次提交,这样,服务器就不会再让提交了,进而转向invalidtoken那所指向的页面。
其实就是第二次与第一次jsp页面向服务器提交的内容和第一次一模一样,当在浏览器上返回前一页时,表单中提交的内容和第一次也是易语言的,所以这种情况下提交也会失败,当返回前面一夜然后刷新,刷新相当于向服务器发送了一次请求,所以这样提交就可以成功。
以上就是关于java spring mvc通过httpclient调用别人的接口服务全部的内容,包括:java spring mvc通过httpclient调用别人的接口服务、如何防止spring mvc重复提交、springboot,springmvc整合swagger等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)