Http 以post方式获取数据

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
public class HttpUtils {
    // 请求服务器端的url
    private static String PATH = "http://192.168.0.102:8080/myhttp/servlet/LoginAction";
    private static URL url;
    public HttpUtils() {
        // TODO Auto-generated constructor stub
    }
    static {
        try {
            url = new URL(PATH);
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    /**
     * @param params
     *            填写的url的参数
     * @param encode
     *            字节编码
     * @return
     */
    public static String sendPostMessage(Map<String, String> params,
            String encode) {
        // 作为StringBuffer初始化的字符串
        StringBuffer buffer = new StringBuffer();
        try {
            if (params != null && !params.isEmpty()) {
                  for (Map.Entry<String, String> entry : params.entrySet()) {
                        // 完成转码操作
                        buffer.append(entry.getKey()).append("=").append(
                                URLEncoder.encode(entry.getValue(), encode))
                                .append("&");
                    }
                buffer.deleteCharAt(buffer.length() - 1);
            }
            // System.out.println(buffer.toString());
            // 删除掉最有一个&

            System.out.println("-->>"+buffer.toString());
            HttpURLConnection urlConnection = (HttpURLConnection) url
                    .openConnection();
            urlConnection.setConnectTimeout(3000);
            urlConnection.setRequestMethod("POST");
            urlConnection.setDoInput(true);// 表示从服务器获取数据
            urlConnection.setDoOutput(true);// 表示向服务器写数据
            // 获得上传信息的字节大小以及长度
            byte[] mydata = buffer.toString().getBytes();
            // 表示设置请求体的类型是文本类型
            urlConnection.setRequestProperty("Content-Type",
                    "application/x-www-form-urlencoded");
            urlConnection.setRequestProperty("Content-Length",
                    String.valueOf(mydata.length));
            // 获得输出流,向服务器输出数据
            OutputStream outputStream = urlConnection.getOutputStream();
            outputStream.write(mydata,0,mydata.length);
            outputStream.close();
            // 获得服务器响应的结果和状态码
            int responseCode = urlConnection.getResponseCode();
            if (responseCode == 200) {
                return changeInputStream(urlConnection.getInputStream(), encode);
            }
        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return "";
    }
    /**
     * 将一个输入流转换成指定编码的字符串
     *
     * @param inputStream
     * @param encode
     * @return
     */
    private static String changeInputStream(InputStream inputStream,
            String encode) {
        // TODO Auto-generated method stub
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        byte[] data = new byte[1024];
        int len = 0;
        String result = "";
        if (inputStream != null) {
            try {
                while ((len = inputStream.read(data)) != -1) {
                    outputStream.write(data, 0, len);
                }
                result = new String(outputStream.toByteArray(), encode);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        return result;
    }
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Map<String, String> params = new HashMap<String, String>();
        params.put("username", "admin");
        params.put("password", "1234");
        String result = HttpUtils.sendPostMessage(params, "utf-8");
        System.out.println("--result->>" + result);
    }
}

Http 以post方式获取数据

时间: 2025-01-15 20:39:52

Http 以post方式获取数据的相关文章

iOS网络编程——Day4(使用NSURLConnection异步方式获取数据)

XCode7使用HTTPS通信,在info.plist文件中加一个属性@{@"NSAppTransportSecurity":@{@"NSAllowsArbitraryLoads":YES}} 接口网站:http://www.webxml.com.cn xml  国际标准 json 流行标准 get: 使用简单,接口外露不安全 //QQ在线查询的接口宏定义GET#define QQOnlineURL_GET @"http://webservice.webx

DataReader方式 获取数据的操作

一.使用DataReader读取为对象List /// <summary> /// 获得数据列表List<>,DataReader 使用参数的 /// </summary> /// <param name="strWhere">条件</param> /// <param name="ht">HashTable,保存参数名及参数对应的值</param> /// <returns&

第90讲,Spark streaming基于kafka 以Receiver方式获取数据 原理和案例实战

1:SparkSteaming基于kafka获取数据的方式,主要有俩种,即Receiver和Derict,基于Receiver的方式,是sparkStreaming给我们提供了kafka访问的高层api的封装,而基于Direct的方式,就是直接访问,在sparkSteaming中直接去操作kafka中的数据,不需要前面的高层api的封装.而Direct的方式,可以对kafka进行更好的控制!同时性能也更好. 2:实际上做kafka receiver的时候,通过receiver来获取数据,这个时候

Hibernate 以流的方式获取数据

hibernateQuery.setFetchSize(Integer.MIN_VALUE); results = hibernateQuery.scroll(ScrollMode.FORWARD_ONLY); this is how to query data out using stream 防止内存中加载的数据过多

关于 ThinkPHP5 使用 getBy 字段名方式获取数据

有小伙半说怎么全文搜索都没有搜索到 getByName 之类的函数. 其实是在这里. 原文地址:https://www.cnblogs.com/F4NNIU/p/9896078.html

Request三种获取数据的方式

今天在做ajax请求后台代码时,发现ajax的方法都对,但就是请求不了后台代码,后来在同事帮助下才发现前台定义了两个相同参数导致请求出错. 下面记录一下request三种获取数据的方式: 1. Request.QueryString: 该方法主要是获取页面路径URL的参数: 2. Request.Form:该方法主要是以post请求方式获取报文体的参数: 3. Request.param:包含上面两种方式,它会在QueryString,Form,ServerVariable中都搜索一遍: 而我今

PDO获取数据的方法fetch()、fetchAll()、setFetchMode()、bindColumn()

PDO的数据获取方法与其他数据库扩展都非常类似,只要成功执行SELECT查询,都会有结果集对象产生.不管是使用PDO对象中的query()方法,还是使用prepare()和execute()等方法结合的预处理语句,执行SELECT查询都会得到相同的结果集对象PDOStatement.都需要通过PDOStatement类对象中的方法将数据遍历出来.下面介绍PDOStatement类中常见的几个获取结果集数据的方法. 1.fetch()方法 PDOStatement类中的fetch()方法可以将结果

HttpClient获取数据

HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议.如果只是需要向Web站点的某个简单页面提交请求并获取服务器响应,HttpURLConnection完全可以胜任.但在绝大部分情况下,Web站点的网页可能没这么简单,这些页面并不是通过一个简单的URL就可访问的,可能需要用户登录而且具有相应的权限才可访问该页面.在这种情况下,就需要涉及Session

IE浏览器同过get\delete请求时,获取不到数据或者获取数据有误

地址:https://blog.csdn.net/weixin_34417814/article/details/93327578 在ie浏览器用get方式获取数据时因为发送得到参数地址都是一样的,所以浏览器会优先从缓存获取数据,而不去服务器请求数据,post由于参数不同所以不会影响. 解决方法: 1.  Internet选项--浏览历史记录--设置-- Internet 临时文件的选项改为每次访问网页时也可以 2. 在ajax请求的页面后加随机数 例:URL=“t=”+Math.random(