本文为android开发基础的网络编程系列文章之一
关于权限的声明,配置,接口文档,请查看前面的内容。
其他文章请查看以下链接
接口
get方法
/get/param
参数:
- keyword 关键字
- page 页码
- order 0 顺序 1 逆序
eg:
/get/param?keyword=你好&page=1&order=0
参数在Url上,我们可以直接对其进行拼接即可。
代码
private void startRequest(final Map<String,String> params,final String method,final String api) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                BufferedReader bufferedReader = null;
                try {
                    //组装参数
                    StringBuilder sb = new StringBuilder();
                    if(params != null && params.size() > 0) {
                        sb.append("?");
                        Iterator<Map.Entry<String,String>> iterator = params.entrySet().iterator();
                        while(iterator.hasNext()) {
                            Map.Entry<String,String> next = iterator.next();
                            sb.append(next.getKey());
                            sb.append("=");
                            sb.append(next.getValue());
                            if(iterator.hasNext()) {
                                sb.append("&");
                            }
                        }
                        Log.d(TAG,"sb result -- > " + sb.toString());
                    }
                    String params = sb.toString();
                    URL url;
                    if(params != null && params.length() > 0) {
                        url = new URL(BASE_URL + api + params);
                    } else {
                        url = new URL(BASE_URL + api);
                    }
                    Log.d(TAG,"url -=-- > " + url.toString());
                    HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
                    httpURLConnection.setRequestMethod(method);
                    httpURLConnection.setRequestProperty("Accept-Language","zh-CN,zh;q=0.9");
                    httpURLConnection.setRequestProperty("Accept","*/*");
                    httpURLConnection.connect();
                    int responseCode = httpURLConnection.getResponseCode();
                    if(responseCode == HttpURLConnection.HTTP_OK) {
                        InputStream inputStream = httpURLConnection.getInputStream();
                        bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
                        String json = bufferedReader.readLine();
                        Log.d(TAG,"result -=-=- > " + json);
                    }
                } catch(Exception e) {
                    e.printStackTrace();
                } finally {
                    if(bufferedReader != null) {
                        try {
                            bufferedReader.close();
                        } catch(IOException e) {
                            e.printStackTrace();
                        }
                    }
                }
            }
        }).start();
    }
测试
post/get都可以
   public void getWithParams(View view) {
        Map<String,String> params = new HashMap<>();
        params.put("keyword","这是我的关键字Keyword");
        params.put("page","12");
        params.put("order","0");
        startRequest(params,"GET","/get/param");
    }
    public void postWithParams(View view) {
        Map<String,String> params = new HashMap<>();
        params.put("string","这是我提交的字符串");
        startRequest(params,"POST","/post/string");
    }
这应该是相比于无参数的请求来说,是最简单的了。其他请求方式亦然。






























