很多小伙伴说不会发送http请求,很好,今天它来了
我们这里直接示范 阿帕奇 的包,http请求
简单易上手,直接安排
以下是它的maven依赖
<!-- 发送http的-->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.2</version>
</dependency>
有小伙伴说,我们要是带json,不麻烦吗,我们直接用ali的,好用,简单
<!--alibaba搞出来的 java对象序列化为json串的工具包-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.54</version>
</dependency>
准备工作安排好了 ,快快快,正题
强调,好用,简单,易上手,Copy直接用
POST
public ResponseEntity<Object> postTset(){
//body参数,我们这里已json为例
//拼接要请求的参数
JSONObject requestObject = new JSONObject();
//转账的金额
requestObject.put("amount","100");
//货币的类型格式
requestObject.put("currency","RMB");
//订单号
requestObject.put("externalId","T202310000");
//json里面嵌套一个json的格式
JSONObject payee = new JSONObject();
//api文档给的
payee.put("partyIdType","json");
//充值账号
payee.put("partyId","123456");
requestObject.put("payee",payee);
HttpClient httpclient = HttpClients.createDefault();
//第三方接口的路径
try {
URIBuilder builder = new URIBuilder("https://xxxxxxxxxxx/disbursement/v1_0/xxx");
URI uri = builder.build();
HttpPost request = new HttpPost(uri);
//第三方需要的请求头参数
request.setHeader("Authorization","Bearer" + "tokenAc");
request.setHeader("Content-Type", "application/json");
// Request body 第三方需要的求情体
/*
body:请求的身体
StringEntity reqEntity = new StringEntity({body});
*/
StringEntity reqEntity = new StringEntity(requestObject.toString());
request.setEntity(reqEntity);
//一切准备好了,发送请求
HttpResponse response = httpclient.execute(request);
//解析数据
HttpEntity entity = response.getEntity();
/*
获取对方传过来的值,我这里对方传过来的是json哦,我们要去
一个一个拿(getString拿他的属性名)
*/
String entityString = EntityUtils.toString(entity);
JSONObject json = JSONObject.parseObject(entityString);
String sa_id = json.getString("sa_id");
String sa_name = json.getString("sa_name");
Integer sa_code = json.getInteger("sa_code");
if (sa_code == 200 || sa_code != null ){
System.out.println("请求成功");
}else {
System.out.println("请求时失败成功");
}
return ResponseEntity.ok(entityString);
} catch (Exception e) {
e.printStackTrace();
}
return ResponseEntity.ok("失败了");
}
GET
public ResponseEntity<Object> getTset(){
HttpClient httpclient = HttpClients.createDefault();
//第三方接口的路径
try {
URIBuilder builder = new URIBuilder("https://xxxxxxxxxxx/disbursement/v1_0/{param}/}");
URI uri = builder.build();
HttpGet request = new HttpGet(uri);
//第三方需要的请求头参数
request.setHeader("Authorization","Bearer" + "tokenAc");
request.setHeader("Content-Type", "application/json");
/* // Request body 第三方需要的求情体
/*
咱们的GET是没有身体的哦,参数在url里面哦
body:请求的身体
StringEntity reqEntity = new StringEntity({body});
*/
// StringEntity reqEntity = new StringEntity("");
// request.setEntity(reqEntity); */
//一切准备好了,发送请求
HttpResponse response = httpclient.execute(request);
//解析数据
HttpEntity entity = response.getEntity();
/*
获取对方传过来的值,我这里对方传过来的是json哦,我们要去一个一个拿(getString拿他的属性名)
*/
String entityString = EntityUtils.toString(entity);
JSONObject json = JSONObject.parseObject(entityString);
String sa_id = json.getString("sa_id");
String sa_name = json.getString("sa_name");
Integer sa_code = json.getInteger("sa_code");
if (sa_code == 200 || sa_code != null ){
System.out.println("请求成功");
}else {
System.out.println("请求时失败成功");
}
return ResponseEntity.ok(entityString);
} catch (Exception e) {
e.printStackTrace();
}
return ResponseEntity.ok("失败了");
}
要是你们要用工具类的,那个要用io流传给对面,我们传给我们的也是io流哦,我这里介绍简单的
只要坚持就会成功,大家好,我是小北