`
conkeyn
  • 浏览: 1529100 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

post json

    博客分类:
  • Java
 
阅读更多

方法一:

public static String doPostJson(String interfaceUrl, Object jsonObject) throws Exception {
		String encoding = "UTF-8";
		String contentType = "application/json";
		String requestMethod = "POST";
		Gson gson = new Gson();
		String stringJson = gson.toJson(jsonObject);
		StringBuffer result = new StringBuffer();
		URLConnection connection = null;
		HttpURLConnection httpConn = null;
		try {
			URL url = new URL(interfaceUrl);
			connection = url.openConnection();
			httpConn = (HttpURLConnection) connection;
			if (stringJson != null) {
				byte[] b = stringJson.getBytes(encoding);
				// 设置 http发送相关属性
				httpConn.setRequestProperty("Content-Length", String.valueOf(b.length));
			}
			httpConn.setRequestProperty("Accept-Charset", encoding);
			httpConn.setRequestProperty("Content-type", contentType);
			httpConn.setRequestProperty("contentType", encoding);
			httpConn.setRequestMethod(requestMethod.toUpperCase());
			httpConn.setDoOutput(true);
			httpConn.setDoInput(true);

			if (stringJson != null && !stringJson.equals("")) {
				// 写消息
				OutputStream out = httpConn.getOutputStream();
				try {
					out.write(stringJson.getBytes(encoding));
				} finally {
					out.flush();
					out.close();
				}
			}
			int returnCode = httpConn.getResponseCode();
			if (returnCode != 200) {
				throw new Exception("连接异常,状态码[" + returnCode + "]");
			}
			// 读取结果
			InputStreamReader isr = new InputStreamReader(httpConn.getInputStream(), encoding);
			BufferedReader in = new BufferedReader(isr);
			try {
				String inputLine = in.readLine();
				while (null != inputLine) {
					result.append(inputLine);
					inputLine = in.readLine();
				}
			} finally {
				if (in != null) {
					in.close();
				}
				if (isr != null) {
					isr.close();
				}
			}
		} catch (Exception e) {
			throw e;//请求失败后把异常往外抛
		} finally {
			if (httpConn != null) {
				httpConn.disconnect();
			}
		}
		return result.toString();
	}

 方法二:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import lsyj.api.fenxiao.utils.BaseExceptionDealWith;

import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpConnectionManager;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.RequestEntity;
import org.apache.commons.httpclient.methods.StringRequestEntity;
import org.apache.commons.httpclient.params.HttpConnectionManagerParams;
import org.apache.commons.httpclient.params.HttpMethodParams;

public class HttpSimpleImpl {
    /**
     * 默认的字符串格式
     */
    private static String DEF_CHARSET="UTF-8";
    /**
     * 默认文件类型
     */
    private static String DEF_FILE_TYPE="text/json";
    /**
     * 设置请求超时时间 单位毫秒
     */
    private int connectionTimeout=30000;
    /**
     * 设置等待数据超时时间 单位毫秒
     */
    private int soTiemout=600000;
    public HttpSimpleImpl(){

    }
    public HttpSimpleImpl(int connectionTimeout,int soTiemout){
        if(connectionTimeout>0)
            this.connectionTimeout=connectionTimeout;
        if(soTiemout>=0){
            this.soTiemout=soTiemout;
        }
    }
    /**
     * get请求
     * @param showUrl
     * @param map
     * @return
     * @throws Exception
     */
    public String simpleGet(String showUrl) throws Exception{


        GetMethod getMethod = new GetMethod(showUrl);
        HttpMethodParams methodParams = getMethod.getParams();
        methodParams.setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, DEF_CHARSET);
        methodParams.setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler());

        HttpClient httpClient = new HttpClient();
        HttpConnectionManager connectionManager = httpClient.getHttpConnectionManager();
        HttpConnectionManagerParams connectionManagerParams = connectionManager.getParams();
        connectionManagerParams.setConnectionTimeout(30000);// 
        connectionManagerParams.setSoTimeout(30000);// 

        try {
            int statusCode = httpClient.executeMethod(getMethod);
            if (statusCode != HttpStatus.SC_OK) {
                throw new Exception(" - 异常:http请求返回码错误"+statusCode);
            }
            InputStream in= getMethod.getResponseBodyAsStream();
            BufferedReader br=new BufferedReader(new InputStreamReader(in,DEF_CHARSET));
            StringBuffer result=new StringBuffer();
            String temp="";
            while((temp=br.readLine())!=null){
                result.append(temp);
            }
            return result.toString();
        } catch (Exception e) {

            throw new Exception(" - 异常:Get请求异常 - 原因描述:"+BaseExceptionDealWith.getBaseExceptionString(e));
        }finally{
            getMethod.releaseConnection();
        }

    }
    /**
     * 简单那的post请求
     * @param url 请求地址
     * @param postData json格式参数
     * @return json字符串
     * @throws Exception
     */
    public String simplePost(String url,String postData) throws Exception{
        if(SimpleUtil.isNullOrTrim(url)||SimpleUtil.isNullOrTrim(postData)){
            throw new Exception("url为空,请求内容为空");
        }
        HttpClient httpClient=new HttpClient();
        HttpConnectionManager manager=httpClient.getHttpConnectionManager();
        HttpConnectionManagerParams managerPrams=manager.getParams();
        managerPrams.setConnectionTimeout(connectionTimeout);
        managerPrams.setSoTimeout(soTiemout);
        PostMethod postMethod=new PostMethod(url);
        postMethod.addRequestHeader("Content-Type", "application/json");
        try {
            RequestEntity requestEntity=new StringRequestEntity(postData, DEF_FILE_TYPE, DEF_CHARSET);

            postMethod.setRequestEntity(requestEntity);    
            int statusCode=httpClient.executeMethod(postMethod);
            if(statusCode!=HttpStatus.SC_OK){
                throw new Exception("请求返回状态码错误!状态码:"+statusCode);
            }
            InputStream in=postMethod.getResponseBodyAsStream();
            BufferedReader br=new BufferedReader(new InputStreamReader(in, DEF_CHARSET));
            StringBuffer sbResult=new StringBuffer();
            String temp="";
            while((temp=br.readLine())!=null){
                sbResult.append(temp);
            }
            if(sbResult==null||sbResult.length()<=0)
                throw new Exception("返回结果为空!");
            return sbResult.toString();
        } catch (UnsupportedEncodingException e) {

            throw e;
        } catch (HttpException e) {

            throw e;
        } catch (IOException e) {

            throw e;
        }finally{
            postMethod.releaseConnection();
        }    
    }    
}

 在

分享到:
评论

相关推荐

    postjson_windows接口测试工具

    【标题】"Postjson_windows接口测试工具"是一个专为Windows平台设计的应用程序,它使得开发者和测试人员能够方便地对RESTful API接口进行测试。在软件开发过程中,接口测试是确保不同系统组件之间数据交换正确性的...

    Qt 写的http 请求使用POST Json

    POST方法常用于提交表单数据或上传文件,这里的用途是上传JSON数据。 接着,我们需要处理JSON数据。Qt提供QJsonDocument和QJsonObject类来解析和创建JSON对象。JSON(JavaScript Object Notation)是一种轻量级的...

    httpclient post json 数据

    "httpclient post json数据"这个主题就是关于如何使用C#的HttpClient类来向Web API发送POST请求,并且以JSON格式传输数据。下面将详细解释这一过程。 首先,理解JSON(JavaScript Object Notation)是一种轻量级的...

    Okhttp框架post json封装

    在上面的代码中,我们首先创建了一个`OkHttpClient`实例,然后定义了一个`postJson`方法,该方法接收URL、JSON字符串和回调函数作为参数。我们使用`RequestBody.create`方法创建一个JSON格式的请求体,接着构建一个`...

    NetHelper_C#帮助类HtmlHelper_JSON_PostJson_

    标题 "NetHelper_C#帮助类HtmlHelper_JSON_PostJson_" 概述的是一个C#编程中的网络辅助类集合,其中包含了处理HTML、JSON数据以及POST请求的相关功能。这个工具集可能是为了方便开发者在进行Web开发时,高效地进行...

    安卓http post json

    为了便于调试和追踪错误,代码中还加入了系统输出语句,打印关键信息,如服务URL、POST数据以及最终返回的JSON字符串。 #### 总结 以上是安卓中使用HTTP POST方法发送JSON数据的详细步骤。正确配置权限、合理设置...

    PostJson Windows

    **PostJson Windows 知识点详解** PostJson Windows 是一个专为Windows操作系统设计的本地工具,它提供了便捷的API接口测试、压力测试、端口扫描等功能。通过解压缩提供的文件"Post Json Windows.exe",用户可以在...

    postjson压力测试.zip

    "postjson压力测试.zip"文件显然包含了关于POST和GET接口的压力测试相关资料,这对于我们理解如何有效地对API接口进行压力测试至关重要。 POST和GET是HTTP协议中最常见的两种请求方法。POST用于向服务器发送数据,...

    Retrofit2 登录Demo @Post json数据到服务器

    Retrofit2 登录Demo @Post json数据到服务器 addConverterFactory(GsonConverterFactory.create()) 把服务端返回的json数据解析成实体的ApiResult&lt;ApiToken&gt;

    asp.net Core Post Json方式给控制器Action传参并拦截丢失参数等错误信息

    原生asp.net不支持通过json提交 方式给控制器的Action传参数,本程序通过给自定义输入字符串格式方法。在action的传参上加入FromJsonKey属性即可在传入的json中传入参数,如果传入的json中不存在相应键即报错 ...

    POSTJSON支持ACCESS、Mysql、Mssql自动生成JSON,提交到服务器接口,自定义发送数据sql和服务器接收地址

    POSTJSON是一款专为数据库设计的工具,它支持ACCESS、MySQL和MSSQL等多种数据库系统,能够自动生成JSON格式的数据,并将其提交到指定的服务器接口。这个功能对于那些需要定期将本地数据库中的信息汇总并发送到远程...

    C# http post jason简单示例

    在这个示例中,我们将探讨如何在C#中使用HTTP POST方法发送JSON数据,以及如何利用开源库Newtonsoft.Json来处理JSON序列化和反序列化。 首先,HTTP POST请求是HTTP协议中的一个方法,用于向服务器提交数据。与GET...

    libcurl 以JSON模式post

    《使用libcurl进行JSON模式POST详解》 在现代的网络编程中,数据交换往往离不开JSON(JavaScript Object Notation)格式,其简洁明了的特性使得它成为API接口间通信的首选。而在C++环境中,libcurl库则为HTTP请求...

    Node.js-tiny-json-http极简的HTTP客户端用于GET和POSTJSON负载

    **Node.js-tiny-json-http极简的HTTP客户端用于GET和POST JSON负载** 在现代Web开发中,Node.js凭借其非阻塞I/O模型和事件驱动的特性,成为了构建服务器端和网络应用的理想选择。其中,HTTP请求是进行数据交互的...

    HTTP Post提交Json与接收返回结果 Winform程序

    它接受API的URL和一个动态对象`data`,将对象序列化为JSON,然后创建一个`StringContent`实例,设置合适的MIME类型("application/json"),最后使用`HttpClient.PostAsync`发送POST请求。如果服务器返回成功状态码...

    post json 请求

    在IT行业中,网络请求是应用程序与服务器交互的基础,而POST JSON请求是其中一种常见的数据传输方式。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它易于人阅读和编写,同时也易于机器解析和...

    delphi_demo HttpPost+JSON

    标题“delphi_demo HttpPost+JSON”涉及到的是一个Delphi编程示例,它演示了如何使用HTTP POST方法发送JSON格式的数据。Delphi是Embarcadero Technologies开发的一种面向对象的编程语言,常用于Windows应用程序开发...

    C#通过post提交json字符串

    ### C#通过POST提交JSON字符串知识点详解 #### 一、知识点概述 在现代Web开发中,前后端分离架构越来越流行,后端主要负责处理业务逻辑和数据存储,前端则负责展示逻辑。在这种模式下,前后端之间的数据交换通常...

    HttpPost_json.java java http-post json格式客户端请求代码

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

    php post json参数的传递和接收处理方法

    本文将详细介绍如何通过POST方法传递和接收JSON参数。 首先,我们要理解PHP如何处理POST请求。在PHP中,通常使用`$_POST`全局变量来获取表单数据。然而,当数据以JSON格式发送时,这些数据不会自动填充到`$_POST`...

Global site tag (gtag.js) - Google Analytics