/**** 通过主方法调用oneTest类中的方法测试
1.入参我们是把map通过Gson转成json字符串
****/
public static void main(String []args){ Map<String,String> params =new HashMap<String,String>(); params.put("ua", "Mozilla/5.0 (Linux; Android 4.4.2; Lingwin K7 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36"); params.put("ip", "112.64.127.226"); params.put("width", "720"); params.put("height", "1280"); Gson gson = new Gson(); String json = gson.toJson(params); oneCloudADAPITV ad=new oneCloudADAPITV(); ad.AdvertisementInfo(json); System.out.println("-------------"); }
/*** 1.通过httppost请求URL 得到JSON字符串
***/
import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
public class oneTest { public static final String DEF_CHATSET = "UTF-8"; public static final int DEF_CONN_TIMEOUT = 30000; public static final int DEF_READ_TIMEOUT = 30000; public static String userAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36"; //广告 private static String Url_Advertisement=""; private static String Url_Advertisement_Test=""; /** * * @param params 请求参数 * @return 网络请求字符串 * @throws Exception * 执行一个HTTP POST请求,返回请求响应的HTML * * @return 返回请求响应的HTML */ public static String AdvertisementInfo(String json) { //Map<String,String> params String url=Url_Advertisement; String result =""; DefaultHttpClient client = new DefaultHttpClient(); HttpPost post = new HttpPost(url); try { StringEntity s = new StringEntity(json); s.setContentEncoding("UTF-8"); s.setContentType("application/json"); //发送json数据需要设置contentType post.setEntity(s); HttpResponse res = client.execute(post); if(res.getStatusLine().getStatusCode() == HttpStatus.SC_OK){ result = EntityUtils.toString(res.getEntity());// 返回json格式: } } catch (Exception e) { throw new RuntimeException(e); } return result; } /** * * @param params 请求参数 * @return 网络请求字符串 * @throws Exception * 执行一个HTTP POST请求,返回请求响应的String * * @return 返回请求响应的String */ public static String AdvertisementInfoTest(String json) { //Map<String,String> params String url=Url_Advertisement_Test; String result =""; DefaultHttpClient client = new DefaultHttpClient(); HttpPost post = new HttpPost(url); try { StringEntity s = new StringEntity(json); s.setContentEncoding("UTF-8"); s.setContentType("application/json"); //发送json数据需要设置contentType post.setEntity(s); HttpResponse res = client.execute(post); if(res.getStatusLine().getStatusCode() == HttpStatus.SC_OK){ result = EntityUtils.toString(res.getEntity());// 返回json格式: } } catch (Exception e) { throw new RuntimeException(e); } return result; }}
/**
1.把JSON字符串转成map
2.通过KEY 取出你要的值封装成你要的json
***/
Map json = (Map) JSON.parse(result.getBody()); for (Object map : json.entrySet()) { if (("alipay_trade_query_response").equals(((Map.Entry) map).getKey().toString())) { Map jsonbody = (Map) JSON.parse(((Map.Entry) map).getValue().toString()); }