Commit 7ddc3b55 by Mansoul

fix put sign

parent 9d6f5bfb
......@@ -2,6 +2,8 @@ package com.common.toolbox.app_utils;
import android.text.TextUtils;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
......@@ -43,7 +45,7 @@ public class HeadersUtil {
paramsMap.put(key, request.url().queryParameterValue(i));
}
params = getParameter(paramsKey, paramsMap);
} else if (TextUtils.equals(request.method(), "POST")) {
} else if (TextUtils.equals(request.method(), "POST") || TextUtils.equals(request.method(), "PUT")) {
if (request.body() instanceof FormBody) {
FormBody body = (FormBody) request.body();
List<String> paramsKey = new ArrayList();
......@@ -54,6 +56,22 @@ public class HeadersUtil {
}
params = getParameter(paramsKey, paramsMap);
}
if (request.url().queryParameterNames() != null) {
List<String> paramNames = new ArrayList<>(request.url().queryParameterNames());
List<String> paramsKey = new ArrayList<>();
HashMap<String, String> paramsMap = new HashMap<>();
for (int i = 0; i < paramNames.size(); i++) {
String key = paramNames.get(i);
paramsKey.add(key);
paramsMap.put(key, request.url().queryParameterValue(i));
}
String tempParams = getParameter(paramsKey, paramsMap);
if (TextUtils.isEmpty(params)) {
params = tempParams;
} else {
params = "&" + tempParams;
}
}
}
String sdDeviceSign = "";
if (!TextUtils.isEmpty(deviceSign) && !TextUtils.isEmpty(sdSign)) {
......@@ -63,9 +81,9 @@ public class HeadersUtil {
params = "&" + params;
}
sign = sdDeviceSign + params + signKey + random;
// System.out.println("http sign:" + sign);
System.out.println("http sign:" + sign);
builder.addHeader("X-APP-SIGN", MD5Helper.md5Hex(sign));
// System.out.println("http sign md5Hex:" + MD5Helper.md5Hex(sign));
System.out.println("http sign md5Hex:" + MD5Helper.md5Hex(sign));
builder.addHeader("X-APP-RANDOM", random);
builder.addHeader("X-DEVICE-SIGN", deviceSign);
builder.addHeader("X-SD-SIGN", sdSign);
......@@ -79,8 +97,12 @@ public class HeadersUtil {
Collections.sort(paramsKey);
StringBuilder sb = new StringBuilder();
for (String key : paramsKey) {
String value = params.get(key);
sb.append(sb.length() == 0 ? (key + "=" + value) : ("&" + key + "=" + value));
try {
String value = URLDecoder.decode(params.get(key), "UTF-8");
sb.append(sb.length() == 0 ? (key + "=" + value) : ("&" + key + "=" + value));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
return sb.toString();
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment