有人把这个程序改成懒人的脚本么

[复制链接]
查看1532 | 回复0 | 2022-3-28 02:43:42 | 显示全部楼层 |阅读模式
  1. package test;

  2. import java.io.FileInputStream;
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import java.nio.charset.Charset;
  6. import java.text.ParseException;

  7. import org.apache.commons.logging.Log;
  8. import org.apache.commons.logging.LogFactory;
  9. import org.apache.http.HttpResponse;
  10. import org.apache.http.HttpStatus;
  11. import org.apache.http.client.HttpClient;
  12. import org.apache.http.client.methods.HttpPost;
  13. import org.apache.http.entity.StringEntity;
  14. import org.apache.http.impl.client.DefaultHttpClient;
  15. import org.apache.http.util.EntityUtils;

  16. import com.alibaba.fastjson.JSONArray;
  17. import com.alibaba.fastjson.JSONObject;

  18. import sun.misc.BASE64Encoder;

  19. public class InvoiceOcr {
  20.             //接口地址
  21.                 private static String apiURL = "http://xxxx:8866/predict/chinese_ocr_db_crnn_server";
  22.                 //private Log logger = LogFactory.getLog(this.getClass());
  23.                 private HttpClient httpClient = null;
  24.                 private HttpPost method = null;
  25.                 private long startTime = 0L;
  26.                 private long endTime = 0L;
  27.                 private int status = 0;
  28.          
  29.                 /**
  30.                  * 接口地址
  31.                  *
  32.                  * @param url
  33.                  */
  34.                 public InvoiceOcr(String url) {
  35.          
  36.                         if (url != null) {
  37.                                 this.apiURL = url;
  38.                         }
  39.                         if (apiURL != null) {
  40.                                 httpClient = new DefaultHttpClient();
  41.                                 method = new HttpPost(apiURL);
  42.          
  43.                         }
  44.                 }
  45.          
  46.                 /**
  47.                  * 调用 API
  48.                  *
  49.                  * @param parameters
  50.                  * @return
  51.                  */
  52.                 public String post(String parameters) {
  53.                         String body = null;
  54.                         if (method != null & parameters != null && !"".equals(parameters.trim())) {
  55.                                 try {
  56.          
  57.                                         // 建立一个NameValuePair数组,用于存储欲传送的参数
  58.                                         method.addHeader("Content-type","application/json");
  59.                                         method.setHeader("Accept", "application/json");
  60.                                         method.setEntity(new StringEntity(parameters, Charset.forName("UTF-8")));
  61.                                         startTime = System.currentTimeMillis();
  62.          
  63.                                         HttpResponse response = httpClient.execute(method);
  64.                                        
  65.                                         endTime = System.currentTimeMillis();
  66.                                         int statusCode = response.getStatusLine().getStatusCode();
  67.                                        
  68.                                         //logger.info("statusCode:" + statusCode);
  69.                                         //logger.info("调用API 花费时间(单位:毫秒):" + (endTime - startTime));
  70.                                         if (statusCode != HttpStatus.SC_OK) {
  71.                                                 //logger.error("Method failed:" + response.getStatusLine());
  72.                                                 status = 1;
  73.                                         }
  74.                                         body = EntityUtils.toString(response.getEntity(),"utf-8");
  75.                                 } catch (IOException e) {
  76.                                         // 网络错误
  77.                                         status = 3;
  78.                                         System.out.println(e);
  79.                                 } finally {
  80.                                         //logger.info("调用接口状态:" + status);
  81.                                 }
  82.                         }
  83.                         return body;
  84.                 }
  85.          
  86.                 public static void main(String[] args) throws ParseException {
  87.                         InvoiceOcr ac = new InvoiceOcr(apiURL);
  88.                         JSONArray arry = new JSONArray();
  89.                         JSONObject j = new JSONObject();
  90.                         arry.add(imageToBase64("E:\\DESK_LIVE\\20200907\\first\\image2.png"));
  91.                         j.put("images",arry);
  92.                 String result = ac.post(j.toJSONString());
  93.                 System.out.println(result);
  94.                 }
  95.                
  96.                 public static String imageToBase64(String path) {
  97.                         byte[] data = null;
  98.                         // 读取图片字节数组
  99.                         try {
  100.                             InputStream in = new FileInputStream(path);
  101.                             data = new byte[in.available()];
  102.                             in.read(data);
  103.                             in.close();
  104.                         } catch (IOException e) {
  105.                             e.printStackTrace();
  106.                         }
  107.                         // 对字节数组Base64编码
  108.                         BASE64Encoder encoder = new BASE64Encoder();
  109.                         return encoder.encode(data);// 返回Base64编码过的字节数组字符串
  110.                     }
  111.                 /**
  112.                  * 0.成功 1.执行方法失败 2.协议错误 3.网络错误
  113.                  *
  114.                  * @return the status
  115.                  */
  116.                 public int getStatus() {
  117.                         return status;
  118.                 }
  119.          
  120.                 /**
  121.                  * @param status
  122.                  *            the status to set
  123.                  */
  124.                 public void setStatus(int status) {
  125.                         this.status = status;
  126.                 }
  127.          
  128.                 /**
  129.                  * @return the startTime
  130.                  */
  131.                 public long getStartTime() {
  132.                         return startTime;
  133.                 }
  134.          
  135.                 /**
  136.                  * @return the endTime
  137.                  */
  138.                 public long getEndTime() {
  139.                         return endTime;
  140.                 }
  141. }

复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

7

主题

21

帖子

168

积分

注册会员

Rank: 2

积分
168