使用java模拟post协议实现图片上传
来源:互联网 发布:高考帮软件下载 编辑:程序博客网 时间:2024/06/05 04:34
package com.yc.smartupload.bean;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;
/**
* 模拟post协议上传文件
* 源辰信息
* @author navy
* 2017年7月27日
*/
public class MyPost {
public static void main(String[] args){
String boundary = "----------" + "dfYcetelkftgfdhredskfljfg454df";
Socket sk=null;
try {
StringBuffer command=new StringBuffer();
StringBuffer data=new StringBuffer();
FileInputStream fis=new FileInputStream(new File("E:\\图片\\loopwallpaper\\137.jpg"));
System.out.println( fis.available() );
byte[] bt=new byte[fis.available()];
fis.read(bt);
fis.close();
//数据拼接
data.append("--" + boundary);
data.append("\r\n");
data.append("Content-Disposition: form-data; name=\"uname\"");
data.append("\r\n\r\n");
data.append("源辰\r\n");
data.append("--" + boundary);
data.append("\r\n");
data.append("--" + boundary);
data.append("\r\n");
data.append("Content-Disposition: form-data; name=\"photo\"; filename=\"137.jpg\"");
data.append("\r\n");
data.append("Content-Type: image/jpeg");
data.append("\r\n\r\n");
byte[] dataByte=data.toString().getBytes();
byte[] endData=("--" + boundary + "--\r\n").getBytes();
//数据字节
sk=new Socket("127.0.0.1",8080);
String url="/fileUpload/userInfo?op=myUpload"; //请求地址
//拼接协议
command.append("POST "+url+" HTTP/1.1\r\n");
command.append("Host:127.0.0.1:8080\r\n");
command.append("Content-Type:multipart/form-data; boundary=");
command.append(boundary);
command.append("\r\n");
command.append("Content-Length:"+(dataByte.length+endData.length+bt.length)+" \r\n\r\n");
//将拼接好的协议通过网络传输到服务器
DataOutputStream dos=new DataOutputStream(sk.getOutputStream());
dos.write( command.toString().getBytes() );
dos.write( dataByte );
dos.write(bt);
dos.write(endData);
//将数据发送到服务器
dos.flush();
//获取服务器的响应信息
BufferedReader br=new BufferedReader(new InputStreamReader(sk.getInputStream()));
String line=null;
while( (line=br.readLine())!=null ){
System.out.println(line);
}
dos.close();
br.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;
/**
* 模拟post协议上传文件
* 源辰信息
* @author navy
* 2017年7月27日
*/
public class MyPost {
public static void main(String[] args){
String boundary = "----------" + "dfYcetelkftgfdhredskfljfg454df";
Socket sk=null;
try {
StringBuffer command=new StringBuffer();
StringBuffer data=new StringBuffer();
FileInputStream fis=new FileInputStream(new File("E:\\图片\\loopwallpaper\\137.jpg"));
System.out.println( fis.available() );
byte[] bt=new byte[fis.available()];
fis.read(bt);
fis.close();
//数据拼接
data.append("--" + boundary);
data.append("\r\n");
data.append("Content-Disposition: form-data; name=\"uname\"");
data.append("\r\n\r\n");
data.append("源辰\r\n");
data.append("--" + boundary);
data.append("\r\n");
data.append("--" + boundary);
data.append("\r\n");
data.append("Content-Disposition: form-data; name=\"photo\"; filename=\"137.jpg\"");
data.append("\r\n");
data.append("Content-Type: image/jpeg");
data.append("\r\n\r\n");
byte[] dataByte=data.toString().getBytes();
byte[] endData=("--" + boundary + "--\r\n").getBytes();
//数据字节
sk=new Socket("127.0.0.1",8080);
String url="/fileUpload/userInfo?op=myUpload"; //请求地址
//拼接协议
command.append("POST "+url+" HTTP/1.1\r\n");
command.append("Host:127.0.0.1:8080\r\n");
command.append("Content-Type:multipart/form-data; boundary=");
command.append(boundary);
command.append("\r\n");
command.append("Content-Length:"+(dataByte.length+endData.length+bt.length)+" \r\n\r\n");
//将拼接好的协议通过网络传输到服务器
DataOutputStream dos=new DataOutputStream(sk.getOutputStream());
dos.write( command.toString().getBytes() );
dos.write( dataByte );
dos.write(bt);
dos.write(endData);
//将数据发送到服务器
dos.flush();
//获取服务器的响应信息
BufferedReader br=new BufferedReader(new InputStreamReader(sk.getInputStream()));
String line=null;
while( (line=br.readLine())!=null ){
System.out.println(line);
}
dos.close();
br.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
阅读全文
0 0
- 使用java模拟post协议实现图片上传
- Java模拟post实现图片上传
- Java模拟post实现图片上传
- java模拟post方式提交表单实现图片上传
- java模拟post方式提交表单实现图片上传
- php模拟post上传图片
- python 模拟post上传图片
- C# 模拟POST上传图片
- Java实现模拟QQ空间图片上传
- Java 后台模拟POST上传
- iOS使用http post多图片上传带描述+java后台服务器,简单实现例子.
- php http模拟POST提交上传图片
- CURL模拟post上传图片到七牛云
- ios 使用post上传图片
- 使用python模拟post表单上传文件
- java模拟post请求上传文件
- java后台模拟post接口上传
- Java实现将图片上传至服务器(FTP协议)
- mybatis入门基础(九)----Myeclipse中Mybatis Generator自动创建代码
- AT LINE-SELECTION-HIDE
- LeetCode 455. Assign Cookies
- sdut 1730 数字三角形
- 配置Log4j详细版
- 使用java模拟post协议实现图片上传
- sso项目心得第二天 用户模块
- MVP的简单使用
- NYOJ 1036 非洲小孩
- HTTP协议
- 餐饮类-utils
- OpenStack安装相关问题及解决方法
- Jquery easyui tree的使用
- Least Common Multiple