URL url = new URL("https://upload.api.weibo.com/2/statuses/upload.json"); //文件接收的CGI,不一定是JSP的
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setUseCaches(false);
String BOUNDARY = "---------------------------7d4a6d158c9"; // 分隔符
StringBuffer sb = new StringBuffer();
sb.append("--");
sb.append(BOUNDARY);
sb.append("\r\n");
sb.append("Content-Disposition: form-data; name=\"access_token\"\r\n\r\n");
sb.append("2.00TWYMMCMevdsD2cdb152510kMeHHE\r\n");
sb.append("--");
sb.append(BOUNDARY);
sb.append("\r\n");
sb.append("Content-Disposition: form-data; name=\"status\"\r\n\r\n");
sb.append("测试啊\r\n");
sb.append("--");
sb.append(BOUNDARY);
sb.append("\r\n");
sb.append("Content-Disposition: form-data; name=\"pic\"; filename=\"testc.jpg\"\r\n");
sb.append("Content-Type: application/x-www-form-urlencoded\r\n\r\n");
byte[] data = sb.toString().getBytes("utf-8");
byte[] end_data = ("\r\n--" + BOUNDARY + "--\r\n").getBytes();
conn.setRequestProperty("Content-Type", "multipart/form-data; boundary="+BOUNDARY); //设置表单类型和分隔符
// conn.setRequestProperty("Content-Length", String.valueOf(data.length + "36960" + end_data.length)); //不是必须的
// conn.setRequestProperty("connection", "keep-alive");
OutputStream os = conn.getOutputStream();
os.write(data);
FileInputStream fis = new FileInputStream(new File("d://testc.jpg")); //要上传的文件
int rn2;
byte[] buf2 = new byte[1024];
while((rn2=fis.read(buf2, 0, 1024))>0)
{
os.write(buf2,0,rn2);
}
os.write(end_data);
os.flush();
os.close();
fis.close();
int code = conn.getResponseCode();
System.out.println(code);
InputStream is = null;
if(200==code){
//得到返回的信息
is = conn.getInputStream();
}else{
is = conn.getErrorStream();
}
BufferedReader br = new BufferedReader(new InputStreamReader(is,"utf-8"));
String str = null;
while((str=br.readLine())!=null){
System.out.println(str);
}
}
catch(Exception ee)
{
ee.printStackTrace();
}
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setUseCaches(false);
String BOUNDARY = "---------------------------7d4a6d158c9"; // 分隔符
StringBuffer sb = new StringBuffer();
sb.append("--");
sb.append(BOUNDARY);
sb.append("\r\n");
sb.append("Content-Disposition: form-data; name=\"access_token\"\r\n\r\n");
sb.append("2.00TWYMMCMevdsD2cdb152510kMeHHE\r\n");
sb.append("--");
sb.append(BOUNDARY);
sb.append("\r\n");
sb.append("Content-Disposition: form-data; name=\"status\"\r\n\r\n");
sb.append("测试啊\r\n");
sb.append("--");
sb.append(BOUNDARY);
sb.append("\r\n");
sb.append("Content-Disposition: form-data; name=\"pic\"; filename=\"testc.jpg\"\r\n");
sb.append("Content-Type: application/x-www-form-urlencoded\r\n\r\n");
byte[] data = sb.toString().getBytes("utf-8");
byte[] end_data = ("\r\n--" + BOUNDARY + "--\r\n").getBytes();
conn.setRequestProperty("Content-Type", "multipart/form-data; boundary="+BOUNDARY); //设置表单类型和分隔符
// conn.setRequestProperty("Content-Length", String.valueOf(data.length + "36960" + end_data.length)); //不是必须的
// conn.setRequestProperty("connection", "keep-alive");
OutputStream os = conn.getOutputStream();
os.write(data);
FileInputStream fis = new FileInputStream(new File("d://testc.jpg")); //要上传的文件
int rn2;
byte[] buf2 = new byte[1024];
while((rn2=fis.read(buf2, 0, 1024))>0)
{
os.write(buf2,0,rn2);
}
os.write(end_data);
os.flush();
os.close();
fis.close();
int code = conn.getResponseCode();
System.out.println(code);
InputStream is = null;
if(200==code){
//得到返回的信息
is = conn.getInputStream();
}else{
is = conn.getErrorStream();
}
BufferedReader br = new BufferedReader(new InputStreamReader(is,"utf-8"));
String str = null;
while((str=br.readLine())!=null){
System.out.println(str);
}
}
catch(Exception ee)
{
ee.printStackTrace();
}