HTTPPOST 发送JSON格式参数
2015-05-15 13:20
621 查看
package cn.jiankang51.hsps.svc.app.chat;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map.Entry;
import java.util.Set;
import org.apache.commons.lang.exception.ExceptionUtils;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
import org.apache.log4j.Logger;
import cn.jiankang51.hsps.pay.util.Sha1Util;
import net.sf.json.JSONObject;
/**
*
* ChatHttpClientUtils
* 与融云的http通信工具类
* 1.post请求
* 2.get请求
* AL
* 2015年5月15日 上午9:31:23
*
* @version 1.0.0
*
*/
public class ChatHttpClientUtils
{
public static final String APP_KEY = "pwe86ga5eljj6";
public static final String APP_SECRET = "eEv9vNiS1y5Qrh";
private static final Logger logger = Logger.getLogger(ChatHttpClientUtils.class);
public static void wrapRequestHeader(HttpPost post)
{
String nonceStr = Sha1Util.getNonceStr();
String timeStamp = Sha1Util.getTimeStamp();
String signature = Sha1Util.getSha1(APP_SECRET + nonceStr + timeStamp);
post.setHeader("App-Key", APP_KEY);
post.setHeader("Nonce", nonceStr);
post.setHeader("Timestamp", timeStamp);
post.setHeader("Signature", signature);
/*Set<Entry<String, String>> entrySet = reqJson.entrySet();
//设置参数
for(Entry<String, String> entry : entrySet){
post.setParameter(entry.getKey(), entry.getValue());
}*/
}
/**
* 调用 API
* @param parameters
* @return
*/
@SuppressWarnings("unchecked")
public static String post(JSONObject reqJson, String uri)
{
String body = null;
HttpPost method = new HttpPost(uri);
HttpClient httpClient = new DefaultHttpClient();
logger.info("json:" + reqJson.toString());
try
{
wrapRequestHeader(method);
List<NameValuePair> params = new ArrayList<NameValuePair>();
//建立一个NameValuePair数组,用于存储欲传送的参数
Set<Entry<String, String>> set = reqJson.entrySet();
for(Entry<String, String> entry : set){
params.add(new BasicNameValuePair(entry.getKey(),entry.getValue() ));
}
//添加参数
method.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
//设置编码
HttpResponse response = httpClient.execute(method);
int statusCode = response.getStatusLine().getStatusCode();
logger.info("statusCode:" + statusCode);
if (statusCode != HttpStatus.SC_OK)
{
logger.error("Method failed:" + response.getStatusLine());
}
//Read the response body
body = EntityUtils.toString(response.getEntity());
}
catch (IOException e)
{
//发生网络异常
logger.error("exception occurred!\n" + ExceptionUtils.getFullStackTrace(e));
//网络错误
}
return body;
}
public static void main(String[] args)
{
// System.out.println(Sha1Util.getSha1("eEv9vNiS1y5Qrh"+"910655241"+"1431662048"));
JSONObject reqJson = new JSONObject();
reqJson.put("userId", "0034");
System.out.println(post(reqJson, "https://api.cn.rong.io/user/getToken.json"));
}
}
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map.Entry;
import java.util.Set;
import org.apache.commons.lang.exception.ExceptionUtils;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
import org.apache.log4j.Logger;
import cn.jiankang51.hsps.pay.util.Sha1Util;
import net.sf.json.JSONObject;
/**
*
* ChatHttpClientUtils
* 与融云的http通信工具类
* 1.post请求
* 2.get请求
* AL
* 2015年5月15日 上午9:31:23
*
* @version 1.0.0
*
*/
public class ChatHttpClientUtils
{
public static final String APP_KEY = "pwe86ga5eljj6";
public static final String APP_SECRET = "eEv9vNiS1y5Qrh";
private static final Logger logger = Logger.getLogger(ChatHttpClientUtils.class);
public static void wrapRequestHeader(HttpPost post)
{
String nonceStr = Sha1Util.getNonceStr();
String timeStamp = Sha1Util.getTimeStamp();
String signature = Sha1Util.getSha1(APP_SECRET + nonceStr + timeStamp);
post.setHeader("App-Key", APP_KEY);
post.setHeader("Nonce", nonceStr);
post.setHeader("Timestamp", timeStamp);
post.setHeader("Signature", signature);
/*Set<Entry<String, String>> entrySet = reqJson.entrySet();
//设置参数
for(Entry<String, String> entry : entrySet){
post.setParameter(entry.getKey(), entry.getValue());
}*/
}
/**
* 调用 API
* @param parameters
* @return
*/
@SuppressWarnings("unchecked")
public static String post(JSONObject reqJson, String uri)
{
String body = null;
HttpPost method = new HttpPost(uri);
HttpClient httpClient = new DefaultHttpClient();
logger.info("json:" + reqJson.toString());
try
{
wrapRequestHeader(method);
List<NameValuePair> params = new ArrayList<NameValuePair>();
//建立一个NameValuePair数组,用于存储欲传送的参数
Set<Entry<String, String>> set = reqJson.entrySet();
for(Entry<String, String> entry : set){
params.add(new BasicNameValuePair(entry.getKey(),entry.getValue() ));
}
//添加参数
method.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
//设置编码
HttpResponse response = httpClient.execute(method);
int statusCode = response.getStatusLine().getStatusCode();
logger.info("statusCode:" + statusCode);
if (statusCode != HttpStatus.SC_OK)
{
logger.error("Method failed:" + response.getStatusLine());
}
//Read the response body
body = EntityUtils.toString(response.getEntity());
}
catch (IOException e)
{
//发生网络异常
logger.error("exception occurred!\n" + ExceptionUtils.getFullStackTrace(e));
//网络错误
}
return body;
}
public static void main(String[] args)
{
// System.out.println(Sha1Util.getSha1("eEv9vNiS1y5Qrh"+"910655241"+"1431662048"));
JSONObject reqJson = new JSONObject();
reqJson.put("userId", "0034");
System.out.println(post(reqJson, "https://api.cn.rong.io/user/getToken.json"));
}
}
相关文章推荐
- asynchttpclient的post方法发送json格式参数和表单格式参数
- HttpClient用post方式传JSON格式字符串参数
- Android开发中HTTP协议HttpPost向服务器发送JSon数据格式的数据
- 接口测试类(http,post请求)参数 json格式
- ExtJS发送POST请求 参数格式为JSON
- 使用HttpGet 发送 json格式的参数
- Http Post请求提交json格式数据工具类,解决请求参数中文乱码问题
- http post 请求参数格式是json
- JS获取url参数,JS发送json格式的POST请求方法
- ExtJS发送POST请求 参数格式为JSON
- java代码发送JSON格式的httpPOST请求
- java发送JSON格式的http通讯的post请求
- JAVA HTTP POST请求(请求参数格式为json)
- JS获取url参数、JS发送json格式的POST请求
- java代码发送JSON格式的httpPOST请求
- ajax请求当发送post方式application/json格式数据,url后面又带有参数的时候
- (转)java代码发送JSON格式的httpPOST请求
- java代码发送JSON格式的httpPOST请求
- python任务-从文件读取参数来发送json格式的post请求,再讲请求结果保存到文档里
- java代码发送JSON格式的httpPOST请求