@PostMapping("/jriaLogin") public ResponseEntity jriaLogin() throws URISyntaxException { Map<String, Object> param = new HashMap<>(); param.put("name", "token2"); param.put("expirationDuration", 90); HttpResponse response = HttpUtil.createPost("http://10.18.104.44:8080/rest/project/{projectIdOrKey}/role") .header("User-Agent", "idea") .basicAuth("mayongming", "mym@9668.com") .body(JSONUtil.toJsonStr(param)) .execute(); //System.out.print("测试接口内容",ResponseEntity.status().body()); if (response.getStatus() == 201) { return ResponseEntity.ok(JSONUtil.parseObj(response.body())); } else { Map<String, Object> error = new HashMap<>(); error.put("code", response.getStatus()); error.put("msg", response.body()); return ResponseEntity.status(401).body(error); } }
时间: 2023-06-07 08:09:30 浏览: 66
这是一段Java代码。它定义了一个名为"jriaLogin"的HTTP POST请求映射方法。该方法会抛出URISyntaxException异常。
在方法内部,它会创建一个名为"param"的Map对象,并在其中添加两个键值对,分别为"name"和"expirationDuration"。
接着,它使用HttpUtil工具类的createPost()方法发起一个HTTP POST请求,并指定了User-Agent、Basic Auth认证信息和请求体。
如果请求返回的状态码为201,则返回响应体的内容。否则,会返回一个带有错误信息的响应体,其状态码为401。
相关问题
在Java中用Dom4j把这一段xml内容转成Map对象:<?xml version="1.0" encoding="UTF-8"?> <java version="1.6.0_26" class="java.beans.XMLDecoder"> <object class="java.util.HashMap"> <void method="put"> <string>att_20160719180419281NEk9</string> <string>cx</string> </void> <void method="put"> <string>att_20160511094248589ZKYq</string> <string>cnmm</string> </void> <void method="put"> <string>att_20161018153614188aTus</string> <string>zsx;fj</string> </void> <void method="put"> <string>att_20160422110906494XuEf</string> <null/> </void> <void method="put"> <string>att_20160511130210612UULE</string> <string>fjyxapp;jjgjapp;wx;jd;dxjg;tb;wsjy</string> </void> <void method="put"> <string>att_20160719180542840LnFm</string> <string></string> </void> <void method="put"> <string>att_20160511130025203ssle</string> <string>zdgsszta</string> </void> <void method="put"> <string>att_20160810131359346N0ra</string> <string>szjys</string> </void> <void method="put"> <string>att_20160511130031927equg</string> <string></string> </void> <void method="put"> <string>att_20160422110456036qp7Y</string> <null/> </void> <void method="put"> <string>att_20160422110543585f7iI</string> <string>cpjbxx</string> </void> </object> </java>
您可以使用以下代码将该XML转换为Map对象:
```java
import java.io.StringReader;
import java.util.HashMap;
import java.util.Map;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class XmlToMap {
public static void main(String[] args) throws Exception {
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> <java version=\"1.6.0_26\" class=\"java.beans.XMLDecoder\"> <object class=\"java.util.HashMap\"> <void method=\"put\"> <string>att_20160719180419281NEk9</string> <string>cx</string> </void> <void method=\"put\"> <string>att_20160511094248589ZKYq</string> <string>cnmm</string> </void> <void method=\"put\"> <string>att_20161018153614188aTus</string> <string>zsx;fj</string> </void> <void method=\"put\"> <string>att_20160422110906494XuEf</string> <null/> </void> <void method=\"put\"> <string>att_20160511130210612UULE</string> <string>fjyxapp;jjgjapp;wx;jd;dxjg;tb;wsjy</string> </void> <void method=\"put\"> <string>att_20160719180542840LnFm</string> <string></string> </void> <void method=\"put\"> <string>att_20160511130025203ssle</string> <string>zdgsszta</string> </void> <void method=\"put\"> <string>att_20160810131359346N0ra</string> <string>szjys</string> </void> <void method=\"put\"> <string>att_20160511130031927equg</string> <string></string> </void> <void method=\"put\"> <string>att_20160422110456036qp7Y</string> <null/> </void> <void method=\"put\"> <string>att_20160422110543585f7iI</string> <string>cpjbxx</string> </void> </object> </java>";
Map<String, String> map = xmlToMap(xml);
System.out.println(map);
}
public static Map<String, String> xmlToMap(String xml) throws Exception {
Map<String, String> map = new HashMap<>();
SAXReader reader = new SAXReader();
Document document = reader.read(new StringReader(xml));
Element root = document.getRootElement().element("object");
for (Element element : root.elements("void")) {
Element keyElement = element.element("string");
Element valueElement = element.elements().get(1);
String key = keyElement.getText();
String value = valueElement == null ? null : valueElement.getText();
map.put(key, value);
}
return map;
}
}
```
该代码使用Dom4j库解析XML,并将其转换为Map对象。输出结果为:
```
{att_20160719180419281NEk9=cx, att_20160511094248589ZKYq=cnmm, att_20161018153614188aTus=zsx;fj, att_20160422110906494XuEf=null, att_20160511130210612UULE=fjyxapp;jjgjapp;wx;jd;dxjg;tb;wsjy, att_20160719180542840LnFm=, att_20160511130025203ssle=zdgsszta, att_20160810131359346N0ra=szjys, att_20160511130031927equg=, att_20160422110456036qp7Y=null, att_20160422110543585f7iI=cpjbxx}
```
将sql改成jdbctemplete方式查询 List<List<String>> assetscardcodeQueryList = new ArrayList<>(); ArrayList<String> query1 = new ArrayList<>(); ArrayList<String> query2 = new ArrayList<>(); query1.add("000000009247"); query2.add("000000009247"); assetscardcodeQueryList.add(query1); assetscardcodeQueryList.add(query2); List<List<String>> assetscardcodeAndBukrsQueryList = new ArrayList<>(); ArrayList<String> query3 = new ArrayList<>(); query3.add("400000001644"); query3.add("A017"); query3.add("400000001641"); query3.add("A017"); String sql="select * from table where (cloum1,cloum2) in (( 'A017', '400000001644'), ('A017', '400000001641')) or cloum1 in ('000000009247','000000009247');"
下面是将这个SQL查询改成使用JdbcTemplate执行的代码:
```
List<List<String>> assetscardcodeQueryList = new ArrayList<>();
ArrayList<String> query1 = new ArrayList<>();
ArrayList<String> query2 = new ArrayList<>();
query1.add("000000009247");
query2.add("000000009247");
assetscardcodeQueryList.add(query1);
assetscardcodeQueryList.add(query2);
List<List<String>> assetscardcodeAndBukrsQueryList = new ArrayList<>();
ArrayList<String> query3 = new ArrayList<>();
query3.add("400000001644");
query3.add("A017");
query3.add("400000001641");
query3.add("A017");
String sql = "select * from table where (cloum1,cloum2) in " +
"(?, ?)" + ", ".repeat(assetscardcodeAndBukrsQueryList.size() - 1) + "or cloum1 in " +
"(?" + ", ?".repeat(assetscardcodeQueryList.size() - 1) + ")";
List<Object> params = new ArrayList<>();
for (List<String> cloumPair : assetscardcodeAndBukrsQueryList) {
params.addAll(cloumPair);
}
params.addAll(assetscardcodeQueryList.stream().flatMap(Collection::stream).collect(Collectors.toList()));
List<Map<String, Object>> rows = jdbcTemplate.query(sql, params.toArray(), new RowMapper<Map<String, Object>>() {
@Override
public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException {
ResultSetMetaData meta = rs.getMetaData();
Map<String, Object> row = new HashMap<>();
for (int i = 1; i <= meta.getColumnCount(); i++) {
row.put(meta.getColumnName(i), rs.getObject(i));
}
return row;
}
});
// 处理查询结果
for (Map<String, Object> row : rows) {
// do something
}
```
这里使用了与前面相同的动态生成SQL语句和参数设置方式,只是将参数列表改成了从Java对象中获取。最终,该方法将返回一个包含查询结果的列表,每个结果都是一个Map对象,其中包含列名和对应的值。你可以根据需要处理该结果集。