val builder = MultipartBody.Builder()
builder.setType(MultipartBody.FORM)
var jsonArray = JSONArray()
for ((index, value) in lineItems.withIndex()) {
var jsonObject = JSONObject()
jsonObject.accumulate("Room_id", lineItems[index].roomId)
jsonObject.accumulate("jobTitle", lineItems[index].jobTitle)
jsonObject.accumulate("floorLevel", lineItems[index].floorLevel)
jsonObject.accumulate("jobTrade", lineItems[index].jobArea)
jsonObject.accumulate("jobWork", lineItems[index].jobWork)
jsonObject.accumulate("desc", lineItems[index].desc)
jsonObject.accumulate("isFixed", lineItems[index].isFixed)
jsonObject.accumulate("hourlyCost", lineItems[index].cost)
jsonObject.accumulate("hourlyTotal", lineItems[index].total)
jsonObject.accumulate("hourlyDuration", lineItems[index].duration)
jsonObject.accumulate("fixedCost", lineItems[index].fixedCost)
if (lineItems[index].lineItemId!="") {
jsonObject.accumulate("_id", lineItems[index].lineItemId)
}
jsonArray.put(jsonObject)
Log.d("json array",jsonArray.toString())
}
builder.addFormDataPart("lineHeight", jsonArray.toString())
for ((i, value) in lineItems.withIndex()) {
var imageList = ArrayList<String>()
if (lineItems[i].imageList!=null && lineItems[i].imageList!!.size>0) {
imageList = lineItems[i].imageList!!
for ((j, path) in imageList.withIndex()) {
if (!imageList[j].contains("http")) {
val file = File(path)
val requestFile =
RequestBody.create(MediaType.parse("image/"+
file.name.substring(file.name.indexOf(".")+1)), file)
val body = MultipartBody.Part.createFormData("photos" + i,
file.name, requestFile)
builder.addPart(body)
}
}
}
}
val requestBody = builder.build()
以下是呼叫代码:
fun addLineItems(@Header("Authorization") token: String,
@Path("jobId") jobId: String,
@Body body: okhttp3.RequestBody): Call<Response>
我向一个web服务人员确认,当我从应用程序调用这个API时,他们在日志中没有得到任何东西,而当从Postman调用same时,日志会显示出来。
我就是这么试的
这就是我如何准备多部分实体。
File file = new File(currentFilePath);
if (file.exists()) {
String name = URLConnection.guessContentTypeFromName(file.getName());
RequestBody requestFile = RequestBody.create(MediaType.parse(name), file);
MultipartBody.Part multipart = MultipartBody.Part.createFormData("file", file.getName(), requestFile);
}
这是上传文件的方法
@Multipart
@POST("your url")
fun uploadFile(@Header("Authorization") token: String, @Path("jobId") jobId: String,
@Part file: MultipartBody.Part): Call<Response>
问题内容: 我正在尝试通过带有POST请求的照片上传 根据自述文件,我应该能够做到这一点 问题是,这不起作用。我收到测试服务器的回复,说它转储了0个post变量。 我已经确认该HTML小页面服务器处于工作状态 所以问题是,请求模块在做什么?有没有更好的方法来发送节点? 问题答案: 经过更多研究后,我决定使用。这使得分段上传非常容易。
试图通过改装将表单数据发送到服务器,但无法向服务器请求。我想用他们的数据发布一个图像数组。 我尝试了许多解决方案,但无法发布包含其数据的图像阵列。当我从addFormDataPart中删除provider\u文档时,效果很好。 如何发送array,它在上运行良好。 请求Api
我需要从客户端发送一个多部分/表单数据POST(xliff文件)到我的Node.js服务器,然后在Node.js捕获数据并将该POST转发到另一个Java服务。 我使用了和来解析表单数据流,并在Node.js中捕获xliff的Buffer,并且都给了我文件,其内容作为缓冲区。 但是,我似乎无法在Node层中重新创建FormData对象来将POST转发到Java服务。 我继续从Java服务中得到错误
我正在使用请求库编写Web服务客户端。我正在获取包含文件和文本json的多部分/表单数据。我不知道如何解析它。是否有合适的库来解析python中的多部分/表单数据格式,或者我应该自己编写解析器? 我的代码: b'\r\n--c00750d1-8ce4-4d29-8390-b50bf02a92cc\r\nContent-Displace: form-data; name="playback Hash
问题内容: 我们想将图像文件作为multipart / form发送到后端,我们尝试使用html表单获取文件并将文件作为formData发送,这是代码 后端中的错误是 “嵌套异常为org.springframework.web.multipart.MultipartException:无法解析多部分servlet请求;嵌套异常为java.io.IOException:org.apache.tomc
我用以下注释注册了rest资源: 当我尝试启动服务器时,我得到以下错误: classCastException:无法将org.glassfish.jersey.ext.cdi1x.transaction.internal.transactionalExceptionInterceptorProvider转换为org.glassfish.jersey.server.spi.componentProv