Commit 7ddc3b55 by Mansoul

fix put sign

parent 9d6f5bfb
...@@ -2,6 +2,8 @@ package com.common.toolbox.app_utils; ...@@ -2,6 +2,8 @@ package com.common.toolbox.app_utils;
import android.text.TextUtils; import android.text.TextUtils;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
...@@ -43,7 +45,7 @@ public class HeadersUtil { ...@@ -43,7 +45,7 @@ public class HeadersUtil {
paramsMap.put(key, request.url().queryParameterValue(i)); paramsMap.put(key, request.url().queryParameterValue(i));
} }
params = getParameter(paramsKey, paramsMap); 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) { if (request.body() instanceof FormBody) {
FormBody body = (FormBody) request.body(); FormBody body = (FormBody) request.body();
List<String> paramsKey = new ArrayList(); List<String> paramsKey = new ArrayList();
...@@ -54,6 +56,22 @@ public class HeadersUtil { ...@@ -54,6 +56,22 @@ public class HeadersUtil {
} }
params = getParameter(paramsKey, paramsMap); 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 = ""; String sdDeviceSign = "";
if (!TextUtils.isEmpty(deviceSign) && !TextUtils.isEmpty(sdSign)) { if (!TextUtils.isEmpty(deviceSign) && !TextUtils.isEmpty(sdSign)) {
...@@ -63,9 +81,9 @@ public class HeadersUtil { ...@@ -63,9 +81,9 @@ public class HeadersUtil {
params = "&" + params; params = "&" + params;
} }
sign = sdDeviceSign + params + signKey + random; 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)); 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-APP-RANDOM", random);
builder.addHeader("X-DEVICE-SIGN", deviceSign); builder.addHeader("X-DEVICE-SIGN", deviceSign);
builder.addHeader("X-SD-SIGN", sdSign); builder.addHeader("X-SD-SIGN", sdSign);
...@@ -79,8 +97,12 @@ public class HeadersUtil { ...@@ -79,8 +97,12 @@ public class HeadersUtil {
Collections.sort(paramsKey); Collections.sort(paramsKey);
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
for (String key : paramsKey) { for (String key : paramsKey) {
String value = params.get(key); try {
sb.append(sb.length() == 0 ? (key + "=" + value) : ("&" + key + "=" + value)); 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(); 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