loadrunner 发送gzip压缩json格式

时间:2021-09-22 19:57:07
/*
 * LoadRunner Java script. (Build: _build_number_)
 * 
 * Script Description: 
 *                     
 */
 
import lrapi.lr;
import java.io.*;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import  java.io.InputStream;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.InputStreamEntity;
import org.apache.http.impl.client.DefaultHttpClient;






public class Actions
{


public int init() throws Throwable {
return 0;
}//end of init




public int action() throws Throwable {


           String foo = "{\"job_id\":93044,\"client_id\":1009,\"version\":\"10001\",\"dev_type\":1,\"app_guid\":\"1\"}";
           HttpResponse response;
           HttpClient  httpclient = new DefaultHttpClient();
  HttpPost httppost= new HttpPost ("http://10.10.10.10:61013/proxy/c/job/detail.json");
  httppost.setHeader("Content-Type", "application/json; charset=UTF-8");
           httppost.setHeader("Accept-Encoding","gzip");
  byte[] bgzip =gzip(foo);
  System.out.println(bgzip.length);
  InputStreamEntity httpentity = new InputStreamEntity(new ByteArrayInputStream(bgzip), bgzip.length);
           httpentity.setChunked(true);
  httppost.setEntity(httpentity);
  
  lr.start_transaction("发送");


           response=httpclient.execute(httppost);
           httppost.setEntity(httpentity);
           int httpCode = response.getStatusLine().getStatusCode();
  System.out.println(httpCode);
  HttpEntity entity = response.getEntity();
           Header header = response.getFirstHeader("content-type");
           System.out.println(header); 
           InputStream inputStream = entity.getContent();
           inputStream=new GZIPInputStream(inputStream);


           
  lr.end_transaction("发送", lr.AUTO);


           InputStreamReader isr = new InputStreamReader(inputStream, "utf-8"); // 设置读取流的编码格式,自定义编码
           BufferedReader br = new BufferedReader(isr);
           StringBuffer sb = new StringBuffer();
           String tempbf;
           while ((tempbf = br.readLine()) != null) {
                sb.append(tempbf);
                sb.append("\r\n");
           }       
            String html = sb.toString();
            System.out.println(html);  
            isr.close();
            inputStream.close();


        return 0;
}//end of action




public static byte[] gzip(String foo){
 ByteArrayOutputStream baos = new ByteArrayOutputStream();
 GZIPOutputStream gzos = null;


 try {
     gzos = new GZIPOutputStream(baos);
     gzos.write(foo.getBytes("UTF-8"));
 } catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
 } finally {
     if (gzos != null) try { gzos.close(); } catch (IOException ignore) {};
 }


 return baos.toByteArray();
      }


public int end() throws Throwable {
return 0;
}//end of end
}