Java上传带图片的Http请求
发布时间:2020-05-24 21:56:44 所属栏目:Java 来源:互联网
导读:Java上传带图片的Http请求
|
下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。 脚本之家小编现在分享给大家,也给大家做个参考。 /**
* 上传带图片的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 + "rn");
sb.append("Content-Disposition: form-data; name=""
+ entry.getKey() + """ + "rn");
sb.append("rn");
sb.append(entry.getValue() + "rn");
}
}
sb.append("--" + BOUNDARY + "rn");
sb.append("Content-Disposition: form-data; name="image"; filename=""
+ filename + """ + "rn");
sb.append("Content-Type: image/pjpeg" + "rn");
sb.append("rn");
byte[] before = sb.toString().getBytes("UTF-8");
byte[] after = ("rn--" + BOUNDARY + "--rn").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,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,n));
}
return out.toString();
}
以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。 如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
