Android 通过okhttp向服务器发送文件
我的服务器端应用程序中有这个Android 通过okhttp向服务器发送文件,android,node.js,server,okhttp,Android,Node.js,Server,Okhttp,我的服务器端应用程序中有这个node.js代码: app.post('/upload',function (req,resp) { console.log(req); var email=req.headers['email'] var storage = multer.diskStorage({ destination: function (req, file, cb) { cb(null,'uploads/')
node.js
代码:
app.post('/upload',function (req,resp) {
console.log(req);
var email=req.headers['email']
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null,'uploads/')
},
filename: function (req, file, cb) {
cb(null,"asdsad"+".jpg")
}
})
var upload = multer({ storage: storage }).single('propic')
upload(req, resp, function (err) {
if (err) {
throw err
}
resp.setHeader('Content-Type', 'application/json');
resp.send({status:true})
})
})
我想在客户端(Android)向服务器发送位图。
我使用了okhttp
库,我想创建表单数据
我该怎么做?您必须将
文件
发送到服务器,而不是位图
,并且必须使用POST
方法来处理服务器端的请求。
并编写以下代码将文件发送到服务器:
public class UploadService {
private static final MediaType MEDIA_TYPE_PNG = MediaType.parse("image/png");
public void uploadImage(File image, String imageName) throws IOException {
OkHttpClient client = new OkHttpClient();
RequestBody requestBody = new MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("file", imageName, RequestBody.create(MEDIA_TYPE_PNG, image))
.build();
Request request = new Request.Builder().url("http://localhost:8080/v1/upload")
.post(requestBody).build();
Response response = client.newCall(request).execute();
if (!response.isSuccessful()) {
throw new IOException("Unexpected code " + response);
}
}
}
你试过什么?我们无法为您编写代码。向我们展示您的Android代码,并发布您看到的问题/错误,也许我们可以提供帮助。