zoukankan      html  css  js  c++  java
  • Android为TV端助力 post带数据请求方式,传递的数据格式包括json和map

    如下:

    public static String httpPost(String url, String json) {
    try {
    URL u = new URL(url);
    HttpURLConnection httpURLConnection = (HttpURLConnection) u.openConnection();
    httpURLConnection.setConnectTimeout(TIMEOUT);
    httpURLConnection.setDoInput(true);
    httpURLConnection.setDoOutput(true);
    httpURLConnection.setRequestMethod("POST");
    httpURLConnection.setUseCaches(false);

    httpURLConnection.setRequestProperty("Content-Type",
    "application/json");

    httpURLConnection.setRequestProperty("Content-Length",
    String.valueOf(json.getBytes().length));

    OutputStream outputStream = httpURLConnection.getOutputStream();
    outputStream.write(json.getBytes());

    int response = httpURLConnection.getResponseCode();
    if (response == HttpURLConnection.HTTP_OK) {
    InputStream inptStream = httpURLConnection.getInputStream();
    return dealResponseResult(inptStream);
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    return "";
    }

    private static String dealResponseResult(InputStream inputStream) {
    String resultData = null;
    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    byte[] data = new byte[1024];
    int len = 0;
    try {
    while ((len = inputStream.read(data)) != -1) {
    byteArrayOutputStream.write(data, 0, len);
    }
    } catch (IOException e) {
    e.printStackTrace();
    }
    resultData = new String(byteArrayOutputStream.toByteArray());
    return resultData;
    }

    如果传的值不是json格式,而是map就可以采取下面这种格式

    public static String httpPost(String url, Map<String, String> params) {
    byte[] data = getRequestData(params, "utf-8").toString().getBytes();
    try {
    URL u = new URL(url);
    HttpURLConnection httpURLConnection = (HttpURLConnection) u.openConnection();
    httpURLConnection.setConnectTimeout(TIMEOUT);
    httpURLConnection.setDoInput(true);
    httpURLConnection.setDoOutput(true);
    httpURLConnection.setRequestMethod("POST");
    httpURLConnection.setUseCaches(false);

    httpURLConnection.setRequestProperty("Content-Type",
    "application/x-www-form-urlencoded");

    httpURLConnection.setRequestProperty("Content-Length",
    String.valueOf(data.length));

    OutputStream outputStream = httpURLConnection.getOutputStream();
    outputStream.write(data);

    int response = httpURLConnection.getResponseCode();
    if (response == HttpURLConnection.HTTP_OK) {
    InputStream inptStream = httpURLConnection.getInputStream();
    return dealResponseResult(inptStream);
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    return "";
    }

    private static StringBuffer getRequestData(Map<String, String> params,
    String encode) {
    StringBuffer stringBuffer = new StringBuffer();
    try {
    for (Map.Entry<String, String> entry : params.entrySet()) {
    stringBuffer.append(entry.getKey())
    .append("=")
    .append(URLEncoder.encode(entry.getValue(), encode))
    .append("&");
    }
    stringBuffer.deleteCharAt(stringBuffer.length() - 1); // remove the last "&"
    } catch (Exception e) {
    e.printStackTrace();
    }
    return stringBuffer;
    }

  • 相关阅读:
    基础数论--例题
    基础数论--扩展欧几里得算法
    基础数论--欧拉定理,逆元
    基础数论--快速幂
    基础数论--欧拉函数
    基础数论--约数
    数论基础--质数
    图算法--二分图的最大匹配(匈牙利算法)
    WEB/APP开发基础之旅--网页布局
    WEB/APP开发基础之旅--HTML入门2
  • 原文地址:https://www.cnblogs.com/xiaoxiaing/p/5383688.html
Copyright © 2011-2022 走看看