> 技术文档 > linux中的curl命令及项目打包方式

linux中的curl命令及项目打包方式


linux中的curl命令

1 发送post请求

curl -H \"Content-Type: application/json\" -X POST -d \'{\"registno\":\"报案号\"}\' \"http://10.3.64.50:8083/icp-service-tzclaim/send/JYMXYReSendClaim\"curl -H \"Content-Type: application/json\" -X POST -d \'{\"fileDate\":\"20250619\"}\' \"http://10.2.13.250:8089/job/startTMYBOld\"待查看文件拉取成功后,再执行报案指令:curl -H \"Content-Type: application/json\" -X POST -d \'{\"dateTime\":\"20250619\"}\' \"http://10.2.13.250:8089/job/tmYbOldReturn\"

解析:
curl 命令中的 POST 是 HTTP 请求方法 ,用于向指定服务器资源提交数据

-X POST :显式告诉 curl 用 POST 方法发请求(有些场景可省略,但显式写更清晰)。
-d :传递请求体(Body)数据,这里是 JSON 字符串,包含业务需要的参数(如 registno 保单号),让服务器接收并处理这些数据。
-H :设置请求头,“Content-Type: application/json” 告诉服务器 “我发的是 JSON 格式数据,你按 JSON 解析” 。

1.1 对比get请求理解

GET :数据拼在 URL 里(如 http://xxx?name=xxx ),适合查询、获取数据,传递数据量小且多为非敏感信息。
POST :数据放在请求体里,适合提交、修改数据(如创建订单、提交表单),能传更大数据(如 JSON 、文件),也更适合敏感数据(相对安全,当然 HTTP 本身不加密,敏感场景需 HTTPS )。

1.2 curl -k访问https协议传输数据

在 curl 命令里,-k(也可写成 --insecure )是用于忽略 SSL 证书验证的选项。

当你使用 curl 访问一个通过 HTTPS 协议传输数据,但服务器所使用的 SSL 证书存在问题(比如是自签名证书、证书过期、域名不匹配等情况 )时,默认 curl 会因为证书验证不通过而拒绝建立连接。加上 -k 选项后,curl 就会跳过对 SSL 证书的严格校验环节,继续尝试与服务器建立连接并传输数据,

  • 适用场景
    常用于测试环境中那些没有配置合法 SSL 证书的站点访问场景 。不过在生产环境等正式场景,一般不建议随意使用,因为会降低通信的安全性,可能面临中间人攻击等风险。
curl -H \"Content-Type: application/json\" -X POST -d \'{\"fileDate\":\"20250619\"}\' \"https://10.2.13.250:8089/job/startTMYBOld\"

2 get请求

curl -XGET \"http://10.3.64.51:8081/icp-web-interface/jd/manualDownloadReport?date=20250501\"

curl默认就是get请求,可省略-XGET;
参数 date=20250501 直接放在 URL 中,服务器通过解析查询字符串获取日期。

3 项目打包方式

  • 默认打包:依赖 common 的服务 Jar 包不包含 common 代码,仅包含依赖声明,运行时需单独提供 common 的 Jar 包。
  • 胖包打包:通过插件(如 Spring Boot 插件、shadow 插件)配置后,可生成包含 common 代码的独立 Jar 包,方便部署。

3.1 胖包打包:

如果需要将 common 模块的代码嵌入到服务的 Jar 包中(形成一个可独立运行的 “胖包”),需要通过插件配置:
(1)Maven 项目(使用 maven-assembly-plugin 或 spring-boot-maven-plugin)
对于 Spring Boot 项目(最常用):
Spring Boot 的打包插件会自动将所有依赖(包括 common)打入最终的 Jar 包中,形成可独立运行的 “胖包”。
配置示例(service-A 的 pom.xml):

   org.springframework.boot spring-boot-maven-plugin 2.7.0   com.example.ServiceAApplication       repackage       

通过maven自带的打包也就是执行 mvn package 后,生成的 service-A-xxx.jar 会包含 common 的所有代码。