java ask to_Java中 askPerson() 怎么写?

publicvoidaddChild(){Personp=database.get(selectedName);if(p==null){UI.println("Nooneiscalled"+p);return;}StringselectedName=capitalise(UI.askString("Nameofchildof"+selec...

public void addChild(){

Person p = database.get(selectedName);

if(p==null){

UI.println("No one is called " + p);

return;

}

String selectedName = capitalise(UI.askString("Name of child of"+selectedName));

if(p.getChildren().contains(selectedName)){

UI.println(p+"is already a child of"+selectedName);

}

else{

p.addChild(selectedName);

}

if(!database.containsKey(selectedName)){

if(UI.askBoolean("Add"+selectedName+"to the database?")){

Person child = askPerson(); //这个括号里面应该写什么,只要这一个,其他的先不用管。

if(!selectedName.equals(child.getFather())&&(child.getMother())){

UI.println(child+"must have"+selectedName+"as a parent");

}

else{

database.put(selectedName);

UI.println("Added:"+selectedName);

}

}

}

UI.println("-----------------");

}

展开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java发送带签名的HTTP请求,可以使用如下步骤: 1. 生成签名字符串 首先需要根据请求参数和密钥生成签名字符串。具体生成规则根据具体业务场景而定。一般情况下,需要对请求参数进行排序,然后按照一定的格式拼接成字符串,最后再加上密钥进行加密。 2. 构造HTTP请求 使用Java的HttpURLConnection或HttpClient等库构造HTTP请求对象,并设置请求方法、请求头、请求参数等信息。 3. 添加签名参数 将生成的签名字符串作为一个参数添加到请求参数。 4. 发送HTTP请求 使用Java的HttpURLConnection或HttpClient等库发送HTTP请求,并获取响应结果。 下面是一个示例代码: ```java import java.io.*; import java.net.*; import java.util.*; public class HttpUtils { public static String sendPost(String url, Map<String, String> params, String secretKey) throws IOException { // 生成签名字符串 String sign = generateSign(params, secretKey); // 构造请求参数 params.put("sign", sign); String paramStr = buildParamString(params); // 构造请求对象 URL obj = new URL(url); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); con.setRequestMethod("POST"); // 设置请求头 con.setRequestProperty("User-Agent", "Mozilla/5.0"); con.setRequestProperty("Accept-Language", "en-US,en;q=0.5"); // 发送POST请求 con.setDoOutput(true); DataOutputStream wr = new DataOutputStream(con.getOutputStream()); wr.writeBytes(paramStr); wr.flush(); wr.close(); // 获取响应结果 BufferedReader in = new BufferedReader( new InputStreamReader(con.getInputStream())); String inputLine; StringBuffer response = new StringBuffer(); while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); return response.toString(); } private static String generateSign(Map<String, String> params, String secretKey) { // 对参数按照key进行排序 List<String> keys = new ArrayList<>(params.keySet()); Collections.sort(keys); // 拼接参数字符串 StringBuilder sb = new StringBuilder(); for (String key : keys) { sb.append(key).append(params.get(key)); } // 加密 String strToSign = sb.toString() + secretKey; return md5(strToSign); } private static String buildParamString(Map<String, String> params) throws UnsupportedEncodingException { StringBuilder sb = new StringBuilder(); for (Map.Entry<String, String> entry : params.entrySet()) { if (sb.length() > 0) { sb.append("&"); } sb.append(URLEncoder.encode(entry.getKey(), "UTF-8")); sb.append("="); sb.append(URLEncoder.encode(entry.getValue(), "UTF-8")); } return sb.toString(); } private static String md5(String input) { try { MessageDigest md = MessageDigest.getInstance("MD5"); byte[] messageDigest = md.digest(input.getBytes()); BigInteger no = new BigInteger(1, messageDigest); String hashtext = no.toString(16); while (hashtext.length() < 32) { hashtext = "0" + hashtext; } return hashtext; } catch (NoSuchAlgorithmException e) { throw new RuntimeException(e); } } } ``` 这个示例代码使用了MD5加密算法对签名字符串进行加密。在实际应用,可以根据需要选择其他加密算法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值