Http 以post方式获取数据
来源:互联网 发布:java web的书 编辑:程序博客网 时间:2024/05/29 15:47
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); }}
0 0
- Http 以post方式获取数据
- 以post方式获取远程数据
- Java 以post方式获取数据
- 通过Http协议以Get和Post方式获取服务器端文本数据
- Http Client 4.0 以POST方式提交数据
- 使用libcurl以Post方式向HTTP服务器提交数据
- 使用libcurl以Post方式向HTTP服务器提交数据
- Android 如何用HttpClient 以Post方式提交数据并添加http头信息
- Android 用HttpClient 以Post方式提交数据并添加http头信息
- python实现的json数据以HTTP GET,POST,PUT,DELETE方式页面请求
- Android 如何用HttpClient 以Post方式提交数据并添加http头信息
- python实现的json数据以HTTP GET,POST,PUT,DELETE方式页面请求
- Android 如何用HttpClient 以Post方式提交数据并添加http头信息
- python实现的json数据以HTTP GET,POST,PUT,DELETE方式页面请求
- Android 如何用HttpClient 以Post方式提交数据并添加http头信息
- python实现的json数据以HTTP GET,POST,PUT,DELETE方式页面请求
- C++用libcurl通过HTTP以表单的方式Post数据到服务器
- Ajax以post方式提交数据
- HTTP 中 Get 和Post
- Http Get 从服务器中获取数据 存储到本地
- Android中SdCard的数据读写
- Json 从服务器 构建
- Http 通过Get获取数据
- Http 以post方式获取数据
- Android 使用Sharedpreference共享参数
- Android中使用Sqlite数据库 (一) 建表
- Android中使用Sqlite数据库 (二)使用sql 增删改查
- Android中使用Sqlite数据库(三) 使用 SQLiteDatabase类实现 增删改查
- 多线程——AsyncTask类的使用(一)
- HDU4033:Regular Polygon(二分+余弦定理)
- AsyncTask的使用 (二)图片下载,进度条
- Android多线程——Handler (一) 实现图片下载