2013-02-19 1 views
1

는 내가의 NameValuePair의 값으로 해시 테이블을 추가 할 :Hashtable을 NameValuePair에 어떻게 추가 할 수 있습니까? 다음과 같이

새로운 BasicNameValuePair ("CREDIT_CARD", {EXPIRATIONDATE = "

value(this is the hashtable)= {expirationDate="2013/02/18", ownerName="Jack Sparrow", typeOfCard="C2"}

또는 같은

name= credit_card

2013/02/18 ", ownerName ="Jack Sparrow ", typeOfCard ="C2 "}).

이 내 코드의 일부이며 당신은 내가 간단한의 NameValuePair을 추가 해요 방법을 볼 수 있습니다 : 사전에

HttpClient client = new DefaultHttpClient(); 
HttpPost post = new HttpPost("https://example.com/register"); 
try { 
    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 
    nameValuePairs.add(new BasicNameValuePair("user", user)); 
    nameValuePairs.add(new BasicNameValuePair("password", password)); 
    post.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

    HttpResponse response = client.execute(post); 

감사합니다!

String hash = DigestUtils.sha512Hex(json); 
nameValuePairs.add(new BasicNameValuePair("credit_card", hash)); 

또는 직접 Java 암호화 API를 사용할 수 있습니다 :

+0

"해시 추가"란 무엇을 의미합니까? –

+0

여기서'해시 '에 대해 이야기하고 있습니까? – ferhan

+0

질문이 수정되었습니다. 감사합니다. – Carlos

답변

2

당신은 아주 쉽게 해시를 계산하는 Apache DigestUtils을 사용할 수 있습니다

final Charset charset = Charset.forName("UTF-8"); 
final MessageDigest digest = MessageDigest 
     .getInstance("SHA-512"); 
final byte[] hashData = digest 
     .digest(json.getBytes(charset)); 
final String hash = new String(hashData, charset); 
nameValuePairs.add(new BasicNameValuePair("credit_card", hash)); 
2

제가 질문을 제대로 이해하고 확실하지 않다. 그러나 나는 그래서 아래처럼 nameValuePairs 뭔가 당신의 add 방법을 수정할 수있는 시도 여기 -

String message = "hello";

System.out.println(DigestUtils.md5Hex(message));

을 제공하고 있습니다. 여기

new BasicNameValuePair("credit_card", DigestUtils.md5Hex(your_json))

는 해시 값이 String 당신이 당신의 nameValuePair

에 다음과 같이 추가 할 수 있습니다 다음 경우 질문 후 manual

업데이트 대답

업데이트입니다 new BasicNameValuePair("credit_card", (your_json))

관련 문제