1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- package cn.com.feishu.provider;
- import org.apache.http.Header;
- import org.apache.http.HttpEntity;
- import org.apache.http.client.methods.CloseableHttpResponse;
- import org.apache.http.client.methods.HttpPost;
- import org.apache.http.config.Registry;
- import org.apache.http.config.RegistryBuilder;
- import org.apache.http.conn.socket.ConnectionSocketFactory;
- import org.apache.http.conn.socket.PlainConnectionSocketFactory;
- import org.apache.http.conn.ssl.NoopHostnameVerifier;
- import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
- import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
- import org.apache.http.entity.mime.MultipartEntityBuilder;
- import org.apache.http.entity.mime.content.FileBody;
- import org.apache.http.impl.client.BasicCookieStore;
- import org.apache.http.impl.client.CloseableHttpClient;
- import org.apache.http.impl.client.HttpClients;
- import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
- import org.apache.http.ssl.SSLContextBuilder;
- import org.apache.http.util.EntityUtils;
- import java.io.File;
- import java.io.IOException;
- import java.security.KeyManagementException;
- import java.security.KeyStoreException;
- import java.security.NoSuchAlgorithmException;
- public class SendImage {
- public static CloseableHttpClient getHttpClient() {
- try {
- SSLContextBuilder builder = new SSLContextBuilder();
- builder.loadTrustMaterial(null, new TrustSelfSignedStrategy());
- SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(builder.build(),
- NoopHostnameVerifier.INSTANCE);
- Registry<ConnectionSocketFactory> registry = RegistryBuilder.<ConnectionSocketFactory>create()
- .register("http", new PlainConnectionSocketFactory())
- .register("https", sslConnectionSocketFactory)
- .build();
- PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager(registry);
- cm.setMaxTotal(100);
- CloseableHttpClient httpclient = HttpClients.custom()
- .setSSLSocketFactory(sslConnectionSocketFactory)
- .setDefaultCookieStore(new BasicCookieStore())
- .setConnectionManager(cm).build();
- return httpclient;
- } catch (KeyManagementException e) {
- e.printStackTrace();
- } catch (NoSuchAlgorithmException e) {
- e.printStackTrace();
- } catch (KeyStoreException e) {
- e.printStackTrace();
- }
- return HttpClients.createDefault();
- }
- public static String SendImageByApacheHttpClient(File file,String tenantAccessToken) throws IOException {
- CloseableHttpClient client = getHttpClient();
- HttpPost post = new HttpPost("https://open.feishu.cn/open-apis/image/v4/put/");
- final MultipartEntityBuilder builder = MultipartEntityBuilder.create();
- FileBody bin = new FileBody(file);
- builder.addPart("image", bin);
- builder.addTextBody("image_type", "message");
- HttpEntity multiPartEntity = builder.build();
- post.setEntity(multiPartEntity);
- post.setHeader("Authorization", "Bearer "+tenantAccessToken);
- CloseableHttpResponse response = client.execute(post);
- System.out.println("http response code:" + response.getStatusLine().getStatusCode());
- for (Header header: response.getAllHeaders()) {
- System.out.println(header.toString());
- }
- HttpEntity resEntity = response.getEntity();
- if (resEntity == null) {
- System.out.println("never here?");
- return "";
- }
- System.out.println("Response content length: " + resEntity.getContentLength());
- return EntityUtils.toString(resEntity);
- }
- public static void main(String[] args) throws Exception {
- File file = new File("D:\\android\\15812888.jpeg");
- String token = AuthProvider.getTenantAccessToken();
- String result = SendImageByApacheHttpClient(file,token);
- System.out.println(result);
- /**
- * {"code":0,"msg":"ok","data":{"image_key":"img_f8bb4cdf-fd0b-4c29-98c5-5147efd4b13g"}}
- */
- }
- }
|