xutils的post请求之传参问题

      日前老师讲了一个xutils框架,看着挺好用哒,可是有那么一个地方就是感觉好麻烦的样子(post请求的传参问题),于是爱钻牛角夹的我就写了一个方法可以用于调用,可以使传参的时候稍微方便一点。

      问题:fiddler抓到了一个post请求的请求参数是这样的

       String params="access_token=7198a3e&bi_channel=xiaomi&os=1&bi_terminal=hz_app&version=3.5.5.3&mac=866963025193329×tamp=1471248592365&type=";

      //xutils请求

      RequestParams params = new RequestParams("utf-8");

      params.addBodyParameter(" access_token "," 7198a3e ");

      params.addBodyParameter(bi_channel "," xiaomi ");

      params.addBodyParameter(os ","1  ");

      params.addBodyParameter(bi_terminal"," hz_app ");

      params.addBodyParameter("version  ","3.5.5.3  ");

      params.addBodyParameter("mac ","866963025193329");

      params.addBodyParameter("timestamp","1471248592365");

      params.addBodyParameter("type","  ");

                        .

                        .

                        .

      省略底下的请求过程,反正这个传参让我恼火了(这么麻烦!),于是我做了个工作是这样的(同方便遇到和我有相同问题的小伙伴解决,小伎俩献丑了):

/**写一个工具类解决此问题*/

public class HttpRequestByXUtils {
    // 写一个方法只获得参数(返回参数)
    public static RequestParams getParams(String parameter) {
        RequestParams params = new RequestParams("utf-8");
        /** 写请求参数 */
        String[] paras = parameter.split("&");
        // 请求参数用&分开
        for (int i = 0; i < paras.length; i++) {
            // 请求参数用=分开
            String[] param = paras[i].split("=");
            String name = null, value = null;
            for (int j = 0; j < param.length; j++) {

                if (j == 0) {
                    name = param[j];
                } else {
                    value = param[j];
                }
            }
            params.addBodyParameter(name, value);
        }
        return params;
    }

}

你可能感兴趣的:(xutils的post请求之传参问题)