欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Java上传带图片的Http请求,java上传图片请求,/** * 上传

来源: javaer 分享于  点击 7197 次 点评:153

Java上传带图片的Http请求,java上传图片请求,/** * 上传


/**     * 上传带图片的http请求     *      * @param murl网址     * @param map     *            参数对 主要不要包括图片     * @param path     *            图片路径 也可以是其他格式 自行做     * @return     * @throws Exception     */    static public String post(String murl, HashMap<String, String> map,            String path) throws Exception {        File file = new File(path);        String filename = path.substring(path.lastIndexOf("/"));        // String filename = Str.md5(path);        StringBuilder sb = new StringBuilder();        if (null != map) {            for (Map.Entry<String, String> entry : map.entrySet()) {                sb.append("--" + BOUNDARY + "\r\n");                sb.append("Content-Disposition: form-data; name=\""                        + entry.getKey() + "\"" + "\r\n");                sb.append("\r\n");                sb.append(entry.getValue() + "\r\n");            }        }        sb.append("--" + BOUNDARY + "\r\n");        sb.append("Content-Disposition: form-data; name=\"image\"; filename=\""                + filename + "\"" + "\r\n");        sb.append("Content-Type: image/pjpeg" + "\r\n");        sb.append("\r\n");        byte[] before = sb.toString().getBytes("UTF-8");        byte[] after = ("\r\n--" + BOUNDARY + "--\r\n").getBytes("UTF-8");        URL url = new URL(murl);        HttpURLConnection conn = (HttpURLConnection) url.openConnection();        conn.setRequestMethod("POST");        conn.setRequestProperty("Content-Type",                "multipart/form-data; boundary=" + BOUNDARY);        conn.setRequestProperty("Authorization",                "Bearer " + Douban.getAccessToken());        conn.setRequestProperty("Content-Length",                String.valueOf(before.length + file.length() + after.length));        conn.setRequestProperty("HOST", url.getHost());        conn.setDoOutput(true);        OutputStream out = conn.getOutputStream();        InputStream in = new FileInputStream(file);        out.write(before);        byte[] buf = new byte[1024];        int len;        while ((len = in.read(buf)) != -1)            out.write(buf, 0, len);        out.write(after);        in.close();        out.close();        MLog.e(inputStream2String(conn.getInputStream()) + "");        return conn.getContent().toString();    }    /**     * is转String     *      * @param in     * @return     * @throws IOException     */    public static String inputStream2String(InputStream in) throws IOException {        StringBuffer out = new StringBuffer();        byte[] b = new byte[4096];        for (int n; (n = in.read(b)) != -1;) {            out.append(new String(b, 0, n));        }        return out.toString();    }
相关栏目:

用户点评