@羲凡——只为了更好的活着
Scala HttpPost请求
楼主使用scala2.11.12版本
1.准备工作
在pom.xml文件中要添加
<dependency>
<groupId>org.scalaj</groupId>
<artifactId>scalaj-http_2.11</artifactId>
<version>2.4.1</version>
</dependency>
2.不啰嗦直接上代码
import java.text.SimpleDateFormat
import java.util.Date
import scalaj.http.{Http, HttpOptions}
import scala.util.parsing.json.JSON
object CapHttpPost {
protected val dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
def main(args: Array[String]): Unit = {
val idType = args(0)
val relayJobType = args(1)
val supDemJobId = args(2)
val deliveryKey = args(3)
val sourceFilePath = args(4)
val respCode = args(5)
//做循环判断三次
var n: Int = 1
var succeed: Boolean = false
while (!succeed && n <= 3) {
succeed = postUrlRes()
println("==========" + dateFormat.format(new Date())
+ s" 试第 $n 次 $succeed====================")
if (succeed == false) {
n = n + 1
Thread.sleep(10000)
}
}
//json格式post请求
def postUrlRes() = {
try {
val body = Http("http://ip4:8001/notification/")
.postData(
s"""{
|"idType": "$idType",
|"relayJobType": "$relayJobType",
|"supDemJobId": "$supDemJobId",
|"deliveryKey": "$deliveryKey",
|"sourceFilePath": "$sourceFilePath",
|"relayOrderRes": {
| "respCode": "$respCode"
|}}
""".stripMargin)
.header("Content-Type", "application/json")
.header("Charset", "UTF-8")
.options(HttpOptions.readTimeout(10000)).asString.body
println(s"==========body: $body==========")
//json的string模式转化成Map
val map = JSON.parseFull(body).get.asInstanceOf[Map[String,String]]
var respC = map("respCode")
if (respC != "000000") false; else true
} catch {
case e: Exception => {
println(e)
false
}
}
}
}
}
3.执行结果
==========body: {"respCode":"000000","respMsg":"成功"}==========
==========2019-04-08 09:14:36 试第 1 次 true====================
Process finished with exit code 0
====================================================================
@羲凡——只为了更好的活着
若对博客中有任何问题,欢迎留言交流