restTempate使用

下載圖片

 RestTemplate restTemplate=new RestTemplate();
    ResponseEntity<Resource> forObject = restTemplate.getForEntity(
        "http://127.0.0.1:8030/images/1.jpg",
        Resource.class);
    Path path = Paths.get("D:\\Users\\StSahana\\Desktop", "a.jpg");
      Files.copy(forObject.getBody().getInputStream(),path);

訪問圖片URL並返回byte[]

ResponseEntity<byte[]> response = restTemplate.exchange("http://127.0.0.1:8030/images/1.jpg",
  HttpMethod.GET, null, byte[].class);
byte[] imageBytes = response.getBody();

原生httpclient發送文件到服務端

FileSystemResource resource =new FileSystemResource(new File(path.toString()));
MultiValueMap<String, Object> form = new LinkedMultiValueMap<String, Object>();
form.add("file",resource);
HttpEntity< MultiValueMap<String, Object> > formEntity = new HttpEntity< MultiValueMap<String, Object> >(form, headers);
HttpEntity<String> res = restTemplate.exchange("http://127.0.0.1:8080/upload", HttpMethod.POST, formEntity, String.class);
System.out.println(res.getBody());

原生httpclient訪問圖片並直接上傳至服務端。

 JSONObject result = null;
        HttpPost post = null;
        CloseableHttpResponse resp = null;
        CloseableHttpClient client = null;
        CloseableHttpResponse response1 = null;//訪問url的response
        CloseableHttpClient httpclient = null;//訪問pic的client
        RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(defaultSocketTimeout).setConnectTimeout(defaultConnectionTimeout)
                .build();
        try {
            client = HttpClients.createDefault();
            URI uri = new URIBuilder(platformConfiguration.getBaseurl())
                    .setPath(personUrl.getUploadPic())
                    .setParameter("personId", personId + "")
                    .setParameter("token", cardLogin.getToken(isExpired))
                    .build();
            post = new HttpPost(uri);


            httpclient = HttpClients.createDefault();
            HttpGet httpGet = new HttpGet(picUrl);
            httpGet.setConfig(requestConfig);
            response1 = httpclient.execute(httpGet);
            HttpEntity entity1 = response1.getEntity();
            InputStream input1 = entity1.getContent();

            //塞進實體
            InputStreamBody inputStreamBody = new InputStreamBody(input1, StringUtils.getFilename(picUrl));
//          FileBody file = new FileBody(new File("D:\\aaaa.jpg"));

            HttpEntity entity = MultipartEntityBuilder.create().setMode(HttpMultipartMode.BROWSER_COMPATIBLE).addPart("file", inputStreamBody).build();
            post.setEntity(entity);
            post.setConfig(requestConfig);
            resp = client.execute(post);
            HttpEntity respEntity = resp.getEntity();
            String tempResult;
            if (null != respEntity) {
                tempResult = EntityUtils.toString(respEntity, Consts.UTF_8);
                log.info("獲取到的返回結果:" + tempResult);
                result = JSON.parseObject(tempResult);
            }

        } catch (Exception e) {
            log.error("上傳圖片失敗");
            log.error(e.getMessage());
            e.printStackTrace();
        } finally {
            try {
                if (null != resp) {
                    resp.close();
                }
                if (null != client) {
                    client.close();
                }
                if (null != httpclient) {
                    httpclient.close();
                }
                if (null != response1) {
                    response1.close();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章