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;
    }

  • 相关阅读:
    刚刚找到的IP地址对应地区数据库
    SQL2000中像SQL2005中的Row_Number一样获取行号
    KindEditor3.4.4版的ASP.NET版本
    使用程序代码输出论坛回复第X层楼
    IIS上启用Gzip压缩(HTTP压缩)详解(PDF)
    ASP.NET中过滤HTML字符串的两个方法
    七个受用一生的心理寓言
    Android获取其他包的Context实例然后XX(转载)
    android junit基础教程
    java获取web容器地址
  • 原文地址:https://www.cnblogs.com/xiaoxiaing/p/5383688.html
Copyright © 2011-2022 走看看