gpt4 book ai didi

java - 如何在 Java 中循环 BasicNameValuePair

转载 作者:太空宇宙 更新时间:2023-11-04 11:49:36 24 4
gpt4 key购买 nike

我正在尝试使用 Java 循环 BasicNameValuePair。我已经有一个 PHP 的工作示例。这是我所拥有的:

 ArrayList<NameValuePair> data = new ArrayList<NameValuePair>();
postParameters.add(new BasicNameValuePair("email", username));
postParameters.add(new BasicNameValuePair("pass", password));

public String sign_creator(ArrayList data){
String sig = "";
for(String key : data ){
String value = data[key];
sig += "" + key + "=" + value + "";
}
sig += "62f8ce9f74b12f84c123cc23437a4a32";
sig = md5(sig);
return data['sig'] = sig;
}

我正在尝试用 Java 实现这个 PHP 逻辑

$data = array(
"email" => @$_GET['u'],
"password" => @$_GET['p'],
);

function sign_creator(&$data){
$sig = "";
foreach($data as $key => $value){
$sig .= "$key=$value";
}
$sig .= "62f8ce9f74b12f84c123cc23437a4a32";
$sig = md5($sig);
return $data['sig'] = $sig;
}

最佳答案

PHP 支持的一些功能在 Java 中的工作方式有所不同。

  1. 在 Java 中,值永远不会通过引用传递,而只能通过值传递。
  2. 像 PHP 中那样的关联数组不存在,在 Java 中它们使用 HashMap。不过,带有 NameValuePairList 也是可能的。
  3. 'sig' 这样的字符串文字必须写在双引号中。
  4. 变量不能在字符串文字中使用,因此 "$key=$value" 不起作用。

你已经快完成了,你只需要更改代码中的一些内容:

// I guess you're using org.apache.commons.httpclient.NameValuePair

void addSign(List<NameValuePair> data) {
String sig = "";
for (NameValuePair pair : data) {
sig += pair.getName() + "=" + pair.getValue();
}
sig += "62f8ce9f74b12f84c123cc23437a4a32";
sig = md5(sig); // I assume you have an md5 method somewhere.

// You need to add the sig to the list
data.add(new BasicNameValuePair("sig", sig));
}

注意:您不应使用 MD5,因为它被认为是不安全的。请参阅this article .

关于java - 如何在 Java 中循环 BasicNameValuePair,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41980493/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com