`

Java中使用HTTP之Post方式

    博客分类:
  • Java
 
阅读更多
package com.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.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;

public class postUtils {

    private static String PATH = "http://192.168.222.1:1231/loginas.ashx";
    private static URL url;

    public postUtils() {
    }
    static {
        try {
            url = new URL(PATH);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    /**
     * 通过给定的请求参数和编码格式,获取服务器返回的数据
     * @param params 请求参数
     * @param encode 编码格式
     * @return 获得的字符串
     */
    public static String sendPostMessage(Map<String, String> params,
            String encode) {
        StringBuffer buffer = new StringBuffer();
        if (params != null && !params.isEmpty()) {
            for (Map.Entry<String, String> entry : params.entrySet()) {
                try {
                    buffer.append(entry.getKey())
                            .append("=")
                            .append(URLEncoder.encode(entry.getValue(), encode))
                            .append("&");//请求的参数之间使用&分割。
                } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                }

            }
            buffer.deleteCharAt(buffer.length() - 1);
            System.out.println(buffer.toString());
            try {
                HttpURLConnection urlConnection = (HttpURLConnection) url
                        .openConnection();
                urlConnection.setConnectTimeout(3000);
                //设置允许输入输出
                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));
                //设置POST方式请求数据
                urlConnection.setRequestMethod("POST");
                OutputStream outputStream = urlConnection.getOutputStream();
                outputStream.write(mydata);
                int responseCode = urlConnection.getResponseCode();
                if (responseCode == 200) {
                    return changeInputStream(urlConnection.getInputStream(),
                            encode);
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return "";
    }

    /**
     * 把服务端返回的输入流转换成字符串格式
     * @param inputStream 服务器返回的输入流
     * @param encode 编码格式
     * @return 解析后的字符串
     */
    private static String changeInputStream(InputStream inputStream,
            String encode) { 
        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) {
                e.printStackTrace();
            }
        }
        return result;
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        //通过Map设置请求字符串。
        Map<String, String> params = new HashMap<String, String>();
        params.put("username", "admin");
        params.put("password", "123");        
        String result=sendPostMessage(params, "utf-8");
        System.out.println(result);
    }

}

 

分享到:
评论

相关推荐

    java中main方法发送httpPost请求

    首先,Java中发送HTTP POST请求通常会用到`HttpURLConnection`类或者第三方库如Apache HttpClient或OkHttp。下面我们将主要使用`HttpURLConnection`来演示,因为它内置在JDK中,无需额外引入依赖。 1. **创建HTTP...

    JAVA 调用HTTP接口POST或GET实现方式

    JAVA 调用HTTP接口POST或GET实现方式,java通用

    java http post client server

    在Java编程环境中,HTTP POST客户端和服务器的交互是网络编程中的常见任务,广泛应用于Web服务、API调用等场景。本篇文章将详细讲解如何使用Java实现HTTP POST客户端和服务器,并探讨相关知识点。 首先,让我们从...

    java中用URLConnection_类post方式提交表单

    java中用URLConnection类post方式提交表单是指在java应用程序中使用java.net.URLConnection类来实现POST方式的表单提交。POST方式是HTTP协议中的一种常见的请求方法,它允许客户端向服务器发送数据。下面是使用...

    java代码-使用java解决带参发送post方式的http请求的源代码

    java代码-使用java解决带参发送post方式的http请求的源代码 ——学习参考资料:仅用于个人学习使用!

    使用Http post的方式调用webservice

    在Java中,可以使用`java.net.URL`、`java.net.HttpURLConnection`或第三方库如Apache HttpClient来构建HTTP POST请求。以下是一个使用HttpURLConnection的基本示例: ```java URL url = new URL(...

    HttpPost_from.java java http-post form表单客户端请求代码

    java http-post form表单客户端请求代码,拿过去直接应用即可

    java支持https的Post请求

    在Java编程环境中,进行HTTPS POST请求是常见的网络通信任务,特别是在需要安全传输敏感数据时,如用户登录信息或支付详情。HTTPS(HTTP over SSL/TLS)提供了加密和身份验证机制,确保了数据的隐私和完整性。本文将...

    java代码发送JSON格式的httpPOST请求

    对于Java开发者而言,能够熟练地使用Java代码来发送JSON格式的HTTP POST请求是一项必备技能,它不仅能够增强应用的网络通信能力,还能提升与各种RESTful API的交互效率。 #### 1. 使用`HttpURLConnection`发送POST...

    (完整版)JAVA利用HttpClient进行POST请求(HTTPS).doc

    在本文中,我们将详细介绍如何使用JAVA的HttpClient库来发送POST请求,以便与HTTPS服务器进行交互。首先,我们需要继承DefaultHttpClient类,以便自定义HttpClient的行为。然后,我们需要使用X509TrustManager来忽略...

    JAVA发送POST请求,如何使用JAVA发送POST请求

    本资源库提供了一份完整的JAVA客户端发送POST请求的示例代码,可以帮助您快速了解如何使用JAVA客户端发送POST请求,同时也适用于其他HTTP请求类型。 我们的示例代码包括以下主要部分: 创建HTTP连接:使用Java.net...

    java发送http/https请求(get/post)Demo,亲测可用

    以上就是Java中发送HTTP/HTTPS GET和POST请求的基本概念,以及处理JSON数据的方法。在实际应用中,还需要考虑错误处理、性能优化和其他安全因素。如果需要更复杂的功能,建议使用成熟的HTTP客户端库。

    HttpPost_xml.java java http-post xml格式客户端请求代码

    java http-post xml格式客户端请求代码

    .net Post方式调用.net和java的webservice

    本文将深入探讨如何使用POST方式在.NET中调用.NET和Java编写的Web服务,并以XML作为请求数据格式。以下是对这个主题的详细阐述: 1. **什么是Web服务**: Web服务是一种基于互联网的软件应用,允许不同系统间的...

    使用java发送get和post请求实践

    在 Java 中发送 GET 和 POST 请求是非常常见的操作,今天我们将通过使用 Apache HttpClient 库来实现这些操作。 什么是 Apache HttpClient 库? Apache HttpClient 库是 Apache 软件基金会提供的一个开源库,用于...

    java_http_post.zip_java http post_java http协议post_java post

    在Java中,我们通常使用HttpURLConnection或Apache HttpClient库来实现HTTP POST请求。以下是一个简单的使用HttpURLConnection的例子: ```java import java.io.OutputStream; import java.net.HttpURLConnection; ...

    javaHttp的get与post自带api简单实现

    javahttp的简单使用。javaHttp的get与post自带api简单实现。java get post的使用记录

    java后台实现 get post 提交.zip

    在"java后台实现 get post 提交.zip"这个压缩包中,很可能包含了使用这些方法的实例代码,以及如何将它们集成到实际项目中的指导。如果你想要深入学习Java后端开发,理解并熟练运用GET和POST请求是非常基础且关键的...

    Java中使用Json

    Gson的使用方式相对简单,如下所示: ```java Gson gson = new Gson(); String jsonString = gson.toJson(yourJavaObject); YourJavaClass yourObject = gson.fromJson(jsonString, YourJavaClass.class); ```...

    java代码-使用java解决http POST请求的源代码

    java代码-使用java解决http POST请求的源代码 ——学习参考资料:仅用于个人学习使用!

Global site tag (gtag.js) - Google Analytics