diff --git a/xutils/src/main/java/org/xutils/http/request/HttpRequest.java b/xutils/src/main/java/org/xutils/http/request/HttpRequest.java index 18b7d3b9..a47adbfc 100644 --- a/xutils/src/main/java/org/xutils/http/request/HttpRequest.java +++ b/xutils/src/main/java/org/xutils/http/request/HttpRequest.java @@ -3,7 +3,6 @@ import android.annotation.TargetApi; import android.os.Build; import android.text.TextUtils; - import org.xutils.cache.DiskCacheEntity; import org.xutils.cache.LruDiskCache; import org.xutils.common.util.IOUtil; @@ -16,30 +15,16 @@ import org.xutils.http.body.RequestBody; import org.xutils.http.cookie.DbCookieStore; +import javax.net.ssl.HostnameVerifier; +import javax.net.ssl.HttpsURLConnection; +import javax.net.ssl.SSLSocketFactory; import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Field; import java.lang.reflect.Type; -import java.net.CookieManager; -import java.net.CookiePolicy; -import java.net.HttpURLConnection; -import java.net.ProtocolException; -import java.net.Proxy; -import java.net.URL; -import java.net.URLDecoder; -import java.net.URLEncoder; +import java.net.*; import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.StringTokenizer; -import java.util.TimeZone; - -import javax.net.ssl.HostnameVerifier; -import javax.net.ssl.HttpsURLConnection; -import javax.net.ssl.SSLSocketFactory; +import java.util.*; /** * Created by wyouflf on 15/7/23. @@ -66,13 +51,15 @@ public HttpRequest(RequestParams params, Type loadType) throws Throwable { protected String buildQueryUrl(RequestParams params) throws IOException { String uri = params.getUri(); StringBuilder queryBuilder = new StringBuilder(uri); - if (!uri.contains("?")) { - queryBuilder.append("?"); - } else if (!uri.endsWith("?")) { - queryBuilder.append("&"); - } List queryParams = params.getQueryStringParams(); - if (queryParams != null) { + + if (queryParams != null && !queryParams.isEmpty()) { + if (!uri.contains("?")) { + queryBuilder.append("?"); + } else if (!uri.endsWith("?")) { + queryBuilder.append("&"); + } + for (KeyValue kv : queryParams) { String name = kv.key; String value = kv.getValueStrOrNull(); @@ -83,15 +70,16 @@ protected String buildQueryUrl(RequestParams params) throws IOException { .append("&"); } } - } - if (queryBuilder.charAt(queryBuilder.length() - 1) == '&') { - queryBuilder.deleteCharAt(queryBuilder.length() - 1); - } + if (queryBuilder.charAt(queryBuilder.length() - 1) == '&') { + queryBuilder.deleteCharAt(queryBuilder.length() - 1); + } - if (queryBuilder.charAt(queryBuilder.length() - 1) == '?') { - queryBuilder.deleteCharAt(queryBuilder.length() - 1); + if (queryBuilder.charAt(queryBuilder.length() - 1) == '?') { + queryBuilder.deleteCharAt(queryBuilder.length() - 1); + } } + return queryBuilder.toString(); }