java爬虫:在请求body中增加json数据采集

1,http://www.hqepay.com/public/expressquery.html 

查询快递不是将键值对post过去,而是将json数据放到body中发送过去。抓包如下:

 

 

2,需要导入一些包,代码如下:

import java.io.UnsupportedEncodingException;

import org.apache.http.HttpResponse;
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 Main {

    public static void main(String[] args) throws Exception {
        // TODO Auto-generated method stub

        DefaultHttpClient client = new DefaultHttpClient();
        String url = "http://www.hqepay.com/common/WebAdapter.aspx";
        HttpPost request = new HttpPost(url);
        request.addHeader("Accept", "application/json, text/javascript, */*; q=0.01");
        request.addHeader("X-Requested-With","XMLHttpRequest");
        request.addHeader("Referer", "http://www.hqepay.com/public/expressquery.html?ECode=ZJS&barNo=8466878151&lab=0");
        request.addHeader("Host","www.hqepay.com");
        String param =  "{\"FunClassName\":\"HqewPay.ExpBLL.ExpOnlineOrderBLL\",\"FunMethodName\":\"IndexTraceInfo\",\"ParamClassName\":\"HqewPay.Express.ExpParam\",\"ParamType\":\"Entity\",\"ParamData\":\"{\\\"ExpNo\\\":\\\"8466878151\\\",\\\"ExpCode\\\":\\\"\\\",\\\"ExpName\\\":\\\"ZJS\\\",\\\"parentCode\\\":\\\"ZJS\\\"}\"}";
        StringEntity se = new StringEntity(param); 
        request.setEntity(se);
        HttpResponse httpResponse = client.execute(request);
        String retSrc = EntityUtils.toString(httpResponse.getEntity());
        System.out.println(retSrc);
        
    }

}

 

posted @ 2015-11-24 12:10  金河  阅读(2076)  评论(0编辑  收藏  举报