public static void main(String[] args) { String url ="http://svr.vrcam.guoxinke.cn:9090/plugins/vrcam/image/save?token=6fd29c6a8634a8e2f82ee63a46b5f0ce&devid=6383043&imageid=1111"; String picUrl="https://jiuge2021.oss-cn-shenzhen.aliyuncs.com/burden/topic/pic/20210809160443959"; sendBinaryPost1(url,picUrl); } /** * 根据URL 上传图片 * @return */ public static String sendBinaryPost1(String url ,String picUrl){ String result = ""; try { //String url = "http://svr.vrcam.guoxinke.cn:9090/plugins/vrcam/image/save?token=6fd29c6a8634a8e2f82ee63a46b5f0ce&devid=6383043&imageid=1111"; URL realUrl = new URL(url); // 打开和URL之间的连接 URLConnection conn = realUrl.openConnection(); // 设置通用的请求属性 conn.setRequestProperty("accept", "*/*"); conn.setRequestProperty("connection", "Keep-Alive"); conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); conn.setRequestProperty("Content-Type", "application/octet-stream"); // 发送POST请求必须设置如下两行 conn.setDoOutput(true); conn.setDoInput(true); // 发送请求参数 DataOutputStream dos=new DataOutputStream(conn.getOutputStream()); try { dos.write(image2Base64(picUrl)); } catch (IOException e) { e.printStackTrace(); } // flush输出流的缓冲 dos.flush(); // 定义BufferedReader输入流来读取URL的响应 BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream())); String line; while ((line = in.readLine()) != null) { result += line; } System.out.println(result);//打印输出结果 } catch (Exception e) { System.out.println("异常," + e.getMessage()); e.printStackTrace(); } return result; } /** * 将图片转成 字节 */ public static byte[] image2Base64(String imgUrl) { URL url = null; InputStream is = null; ByteArrayOutputStream outStream = null; HttpURLConnection httpUrl = null; try{ url = new URL(imgUrl); httpUrl = (HttpURLConnection) url.openConnection(); httpUrl.connect(); httpUrl.getInputStream(); is = httpUrl.getInputStream(); outStream = new ByteArrayOutputStream(); //创建一个Buffer字符串 byte[] buffer = new byte[1024]; //每次读取的字符串长度,如果为-1,代表全部读取完毕 int len = 0; //使用一个输入流从buffer里把数据读取出来 while( (len=is.read(buffer)) != -1 ){ //用输出流往buffer里写入数据,中间参数代表从哪个位置开始读,len代表读取的长度 outStream.write(buffer, 0, len); } // 对字节数组Base64编码 return outStream.toByteArray(); }catch (Exception e) { e.printStackTrace(); } finally{ if(is != null) { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } if(outStream != null) { try { outStream.close(); } catch (IOException e) { e.printStackTrace(); } } if(httpUrl != null) { httpUrl.disconnect(); } } return null; }
根据连接 上传图片
最新推荐文章于 2023-03-24 02:32:38 发布