文档章节

HTTPPost发送JSON

摘__星
 摘__星
发布于 2017/03/21 09:29
字数 565
阅读 28
收藏 0

HTTPPost发送JSON:


private static final String APPLICATION_JSON = "application/json";
    
    private static final String CONTENT_TYPE_TEXT_JSON = "text/json";

public static void httpPostWithJSON(String url, String json) throws Exception {
        // 将JSON进行UTF-8编码,以便传输中文
        String encoderJson = URLEncoder.encode(json, HTTP.UTF_8);
        
        DefaultHttpClient httpClient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost(url);
        httpPost.addHeader(HTTP.CONTENT_TYPE, APPLICATION_JSON);
        
        StringEntity se = new StringEntity(encoderJson);
        se.setContentType(CONTENT_TYPE_TEXT_JSON);
        se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, APPLICATION_JSON));
        httpPost.setEntity(se);
        httpClient.execute(httpPost);
    }


接收HTTPPost中的JSON: 



public static String receivePost(HttpServletRequest request) throws IOException, UnsupportedEncodingException {
        
        // 读取请求内容
        BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream()));
        String line = null;
        StringBuilder sb = new StringBuilder();
        while((line = br.readLine())!=null){
            sb.append(line);
        }

        // 将资料解码
        String reqBody = sb.toString();
        return URLDecoder.decode(reqBody, HTTP.UTF_8);
    }



以上摘自:http://chaico.iteye.com/blog/1954128

以下来自http://www.itnose.net/news/128/6262455

接收HTTPPost中的JSON:


<pre name="code" class="java" style="font-size: 13px; line-height: 19px;">import com.google.gson.Gson;
public AttendanceInfo getAttendanceInfoFromBbchat(){
		 // 读取请求内容
		ToftContext context = ToftContext.getToftContext();
		try {
			InputStream in = context.getRequest().getInputStream();
		    BufferedReader br = new BufferedReader(new InputStreamReader(in));
		    StringBuffer stringBuffer = new StringBuffer();
			String str = "";
			while ((str = br.readLine()) != null) {
				stringBuffer.append(str);
			}
			String info = stringBuffer.toString();
			if(StringUtils.isNotBlank(info)){
				Gson gson = new Gson();
				AttendanceInfo attendanceInfo = gson.fromJson(info, AttendanceInfo.class);
				if(StringUtils.isNotBlank(attendanceInfo.getToken())){
					context.getRequest().setAttribute("token", attendanceInfo.getToken());
				}
				return attendanceInfo;
			}
		}catch (Exception e) {
			// TODO: handle exception
			log.error("bbchat 解析邦邦社区考勤json参数出现异常");
			e.printStackTrace();
		}
		return null;
	}



HTTPPost发送JSON:


public static String pushAttendanceInfo(){
		String url = "http://ibb.anbanggroup.com:8080/push/push";
		HttpClient httpClient = new HttpClient();
		// 设置连接超时时间(单位毫秒)
		httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(60*1000);
		// 设置读取超时时间(单位毫秒)
		httpClient.getHttpConnectionManager().getParams().setSoTimeout(60*1000);
		PostMethod method = new PostMethod(url);
		String info = null;
		try {
			String aaa = "{\"token\": \"ee32da94162d4b688af2b0241db4600a\",\"touser\":\"AB044979\""+
			     ",\"msgtype\":\"text\",\"msg\":{\"content\": \"Hello\"},\"start\":\"\",\"end\":\"2015-05-30 00:00:00\"}";
			RequestEntity entity = new StringRequestEntity(aaa, "application/json", "UTF-8");
			method.setRequestEntity(entity);
			httpClient.executeMethod(method);
			int code = method.getStatusCode();
			if (code == HttpStatus.SC_OK) {
				BufferedReader reader = new BufferedReader(new InputStreamReader(method.getResponseBodyAsStream()));
				StringBuffer stringBuffer = new StringBuffer();
				String str = "";
				while ((str = reader.readLine()) != null) {
					stringBuffer.append(str);
				}
				info = stringBuffer.toString();
				log.info("bbchat 返回报文:"+info);
			}else{
				log.error("bbchat 接口返回失败  httpStatusCode="+code);
			}

		} catch (Exception ex) {
			ToftLogger.error("内部接口报文发送异常:" + ex.getMessage());
			ex.printStackTrace();
		} finally {
			if (method != null) {
				method.releaseConnection();
			}
		}
		return info;
	}


HTTPPost发送参数: 



/**
	 * 考勤推送接口登陆
	 * @return
	 */
	public static String loginAttendancePush(){
		String url = "http://ibb.anbanggroup.com:8080/authenticate/ablogin";
		HttpClient httpClient = new HttpClient();
		// 设置连接超时时间(单位毫秒)
		httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(60*1000);
		// 设置读取超时时间(单位毫秒)
		httpClient.getHttpConnectionManager().getParams().setSoTimeout(60*1000);
		PostMethod method = new PostMethod(url);
		String info = null;
		try {
			method.setParameter("username", "27607");
			method.setParameter("password", "cd55abee1c0ef6d4525a223faf00c96a193576f58ceb39b9");
			httpClient.executeMethod(method);
			int code = method.getStatusCode();
			if (code == HttpStatus.SC_OK) {
				BufferedReader reader = new BufferedReader(new InputStreamReader(method.getResponseBodyAsStream()));
				StringBuffer stringBuffer = new StringBuffer();
				String str = "";
				while ((str = reader.readLine()) != null) {
					stringBuffer.append(str);
				}
				info = stringBuffer.toString();
				log.info("bbchat 返回报文:"+info);
			}else{
				log.error("bbchat 接口返回失败  httpStatusCode="+code);
			}

		} catch (Exception ex) {
			ToftLogger.error("内部接口报文发送异常:" + ex.getMessage());
			ex.printStackTrace();
		} finally {
			if (method != null) {
				method.releaseConnection();
			}
		}
		return info;
	}


本文转载自:http://dx969208484.blog.51cto.com/10422053/1901585

摘__星
粉丝 0
博文 4
码字总数 0
作品 0
海淀
程序员
私信 提问
android发送/接收json数据

url带参数的写法: url+/?r=m/calendar/contact_list&uid=3&&subscriptionslist[pageindex]=10&subscriptionslist[recordlimit]=10 从“&”符号之后一连串都是参数。 发送方式代码编写: De...

墨梅
2014/05/06
922
0
HttpClientUtil 工具

import org.apache.http.*; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.CloseableHtt......

心月狐
2018/10/08
0
0
用httpPost对JSON发送和接收的例子

HTTPPost发送JSON: private static final String APPLICATION_JSON = "application/json"; private static final String CONTENTTYPETEXT_JSON = "text/json"; public static void httpPost......

凯文加内特
2015/12/11
1K
0
从远程服务器获取数据

package com.utils; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; im......

建华1
2015/10/07
259
2
httpClient 发送 post请求

参考 httpClient 发送 get请求; 客户端示例: public static void main(String[] args) { // 第一个 sendHttpPost HttpDemo1 httpDemo1 = new HttpDemo1(); JSONObject jsonStr = new JSONO......

pan_1308
2016/09/08
41
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周二乱弹 —— 开发语言和语言开发的能一样么

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @花间小酌:#今日歌曲推荐# 分享The Score的单曲《Revolution》 《Revolution》- The Score 手机党少年们想听歌,请使劲儿戳(这里) @批判派...

小小编辑
今天
727
9
oracle ORA-39700: database must be opened with UPGRADE option

ORA-01092: ORACLE instance terminated. Disconnection forced ORA-00704: bootstrap process failure ORA-39700: database must be opened with UPGRADE option 进程 ID: 3650 会话 ID: 29......

Tank_shu
今天
3
0
分布式协调服务zookeeper

ps.本文为《从Paxos到Zookeeper 分布式一致性原理与实践》笔记之一 ZooKeeper ZooKeeper曾是Apache Hadoop的一个子项目,是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它...

ls_cherish
今天
4
0
聊聊DubboDefaultPropertiesEnvironmentPostProcessor

序 本文主要研究一下DubboDefaultPropertiesEnvironmentPostProcessor DubboDefaultPropertiesEnvironmentPostProcessor dubbo-spring-boot-project-2.7.3/dubbo-spring-boot-compatible/au......

go4it
昨天
2
0
redis 学习2

网站 启动 服务端 启动redis 服务端 在redis 安装目录下 src 里面 ./redis-server & 可以指定 配置文件或者端口 客户端 在 redis 的安装目录里面的 src 里面 ./redis-cli 可以指定 指定 连接...

之渊
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部