java - 如何在 Java 中循环 BasicNameValuePair

标签 java php

我正在尝试使用 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/

相关文章:

java - 在 Java 程序中存储动画 GIF 图像

java - 如何在不最大化和最小化框架的情况下让 KeyListener 工作?

php - 在 codeigniter 的 form_multiselect() 中设置多个值

php - 数据库中的表与实体模式不一致

javascript - Onclick anchor 链接使用ajax只传递一个变量而不传递两个变量

php - 带有数组字段的准备语句 PostgreSQL&PHP

java - 我如何找出为什么我的Java程序总是崩溃?

java - GEF 中的 SVG 图像

java - Eclipse 创建您自己的 system.out.println 快捷方式

php - 尝试使用 Symfony 创建一个查询,允许我访问外键对象