当前位置: 首页 > 知识库问答 >
问题:

邮递员-在邮递上发送图像文件和json

全弘深
2023-03-14
public class NewShipmentDto implements Serializable {
  private String description;
  private Long senderId;
  private Long receiverId;
  private byte[] packageImage;
  private CommissionPaidBy commissionPaidBy;
  private Long senderPaymentMethod;
  private LocationDto senderLocation;
  private LocationDto receiverLocation;

// + constructors and gets/sets
}
{
    "description":"Libros",
    "senderId":1,
    "receiverId":1,
    "commissionPaidBy":"BOTH",
    "senderPaymentMethod":1,
    "senderLocation":
    {
        "latitud":100,
        "longitud":100
    },
    "receiverLocation":
    {
        "latitud":100,
        "longitud":100
    }
}
"receiverLocation":
{
    "latitud":100,
    "longitud":100
}

这是我的POST方法,我还没有添加读取文件的逻辑:

@POST
@Consumes({MediaType.APPLICATION_JSON})
@Produces({MediaType.APPLICATION_JSON})
public Response addShipment(String shipment) throws EnviosYaException {
    Gson gson = new Gson();
    NewShipmentDto newShipmentDto = gson.fromJson(shipment, NewShipmentDto.class);
    NewShipmentResponseDto response = shipmentServices.addShipment(newShipmentDto);
    return Response.ok(gson.toJson(response)).build();
}

如果有必要,我可以更改json的结构,以避免出现嵌套的json,但我想先知道这是否可行。谢谢

共有1个答案

郎魁
2023-03-14

看起来您将JAX-RS用于REST API。对于您的用例,Multipart/Format-DataContent-Type更合适。请看一下这个JAX-RS问题。

如果希望保持JSON结构不变,可以将base64编码的数据存储在image字段的字符串中。模型看起来像。

public class NewShipmentDto implements Serializable {
  private String description;
  private Long senderId;
  private Long receiverId;
  private String encodedPackageImage;
  private CommissionPaidBy commissionPaidBy;
  private Long senderPaymentMethod;
  private LocationDto senderLocation;
  private LocationDto receiverLocation;

  // + constructors and gets/sets
}
 类似资料:
  • 当我尝试将带有postman的文件发送到我的Laravel api时,结果总是返回“NULL” 我的控制器如下所示: 和我的路线文件: 但是当我试图在邮递员中发送图像时,我得到的结果是“NULL” 我的邮递员配置是: http://app.dev/test(职位) 内容-类型-多部分/表单-数据 表单数据 图像-test.jpg 我错过什么了吗? 我已经检查了php。这样我就有足够的上传空间了 我

  • 2FE552B7-53B1-4E4A-AFFF-3AEF8FE9D05B-----WebKitFormBoundaryLH8FJWGYEEVTCJMA内容-配置:表单-数据;name=“sample test file.pdf”;filename=“sample test file.pdf”content-type:application/pdf

  • 我正试图上传邮递员表单数据的图像。我无法得到输入 请帮忙提前感谢。

  • 我和邮递员一起看了用cookie发送请求的手册: 由于打包的应用程序运行在与浏览器分开的沙箱中,因此无法访问浏览器内部设置的cookie。使用拦截器扩展也可以克服这个限制。Postman通过拦截器路由所有请求,然后拦截器使用浏览器上下文发送请求。浏览器内部设置的Cookie将自动附加到您的请求。阅读关于拦截器的博文原文。 一旦拦截器启用,您也可以从邮递员发送cookie。只需设置“cookie”头

  • 我正在使用ASP。NET Web API:http://xyzdomain.com:16845/api/returns/returns 如何使用PostmanChrome扩展向终结点发送POST请求,给定是一个集合:

  • 有人能帮助我如何使用以下参数发送POST请求吗: 我试着在《邮递员的身体》中发送一个带有以下参数的: 然而,在发送上述请求时,我得到的位置字符串为null。