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);
        
    }

}
原文地址:https://www.cnblogs.com/wang7/p/4991190.html