学习如何使用Httpclient发送json数据
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import net.sf.json.JSONObject;
import org.apache.http.HttpEntity;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
/**
* 对应微信公众平台API的:发送消息
* @author zyk
*
*/
public class SendMessage {
/**
* 高级群发接口-上传图文消息素材【订阅号与服务号认证后均可用】
* @param access_token
* @param map
* @throws IOException
*/
public static String uploadnews(String access_token, HashMap map)
throws IOException {
String media_id = null;
String url = "https://api.weixin.qq.com/cgi-bin/media/uploadnews?access_token="
+ access_token;
JSONObject jo = JSONObject.fromObject(map);
@SuppressWarnings("deprecation")
CloseableHttpClient client = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(url);
StringEntity params = new StringEntity(jo.toString(),"UTF-8");
httpPost.setEntity(params);
CloseableHttpResponse httpResponse = null;
try {
httpResponse = client.execute(httpPost);
HttpEntity entity = httpResponse.getEntity();
String jsonString = EntityUtils.toString(entity);
JSONObject fromObject = JSONObject.fromObject(jsonString);
Object media_idObject = fromObject.get("media_id");
if (media_idObject != null) {
media_id = media_idObject.toString();
}
System.out.println("上传图文消息素材-返回值:"
+ jsonString);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if(httpResponse != null){
httpResponse.close();
}
if(client != null){
client.close();
}
}
return media_id;
}
}
根据json格式使用map和list进行构造
{ "articles": [ { "thumb_media_id":"qI6_Ze_6PtV7svjolgs-rN6stStuHIjs9_DidOHaj0Q-mwvBelOXCFZiq2OsIU-p", "author":"xxx", "title":"Happy Day", "content_source_url":"www.qq.com", "content":"content", "digest":"digest", "show_cover_pic":"1" }, { "thumb_media_id":"qI6_Ze_6PtV7svjolgs-rN6stStuHIjs9_DidOHaj0Q-mwvBelOXCFZiq2OsIU-p", "author":"xxx", "title":"Happy Day", "content_source_url":"www.qq.com", "content":"content", "digest":"digest", "show_cover_pic":"0" } ] }
HashMap mapUp = new HashMap();
HashMap SubMap = new HashMap();
List list = new ArrayList();
SubMap.put("thumb_media_id", "123456789");
SubMap.put("author", "san_jose"));
SubMap.put("title", "构造Json数据");
SubMap.put("content_source_url","http://www.csdn.com");
SubMap.put("content", "构造Json数据");
SubMap.put("digest", "构造Json数据");
SubMap.put("show_cover_pic", "1");
list.add(SubMap);
mapUp.put("articles", list);