代号一-使用多部分请求上传文件后如何获得响应

问题描述 投票:1回答:2

我正在使用代号One,使用各自的API将视频上传到Vimeo。我正在使用一个包含多个部分的请求来实际上传文件,但是需要响应才能找到上传状态。如何获得回复?

public void doFileUpload(String url, String filename) throws IOException {
    MultipartRequest req = new MultipartRequest() {
        int chr;
        StringBuffer sb = new StringBuffer();
        public String response = "";

        public void readResponse(InputStream input) throws IOException {
            response = Util.readToString(input);

            Log.p("File Response->" + response);
        }

        protected void handleErrorResponseCode(int code, String message)
        {
            Log.p("Error Response->" + message);
        }

        protected void readHeaders(Object connection) throws IOException {
            String val = getHeader(connection, "MyHeaderName");
            Log.p("Header Response->" + val);

        }

        protected void handleException(Exception err) {
            Dialog.show(
                    "Connection Err!!",
                    "Are you connected to the internet? Check your connection",
                    "Ok", null);
        }
    };
    req.setUrl(url);
    req.setPost(true);

    String mime = "application/mp4";
    req.addData("file_data", filename, mime);
    req.setFilename("file_data", filename);
    req.setReadResponseForErrors(true);
    req.addResponseCodeListener(new ActionListener() {

        public void actionPerformed(ActionEvent ev) {
            try {
                NetworkEvent event = (NetworkEvent) ev;
                Log.p("Err Rsp Code->" + event.getResponseCode());
                Log.p("ResponseCodeListener:");
                Log.p(ev.toString() );
java vimeo codenameone vimeo-api
2个回答
0
投票

我建议您使用addData方法,该方法接受文件URL而不是字节数组,因为字节数组版本可能会超出设备内存(例如,对于较大的视频或低内存设备)。

您可以像其他任何连接请求一样读取响应:

  1. 派生连接请求并覆盖:protected void readResponse(InputStream input)
  2. 使用addResponseListener将侦听器绑定到用户响应。
  3. 使用addToQueueAndWait检测到上传已完成,然后调用getResponseData()以获取字节数组数据。

0
投票

我有同样的问题!在后端,我正在使用Spring boot,将我的上载控制器更改为@RestController时,仅将其标记为@Controller,它可以正常工作,并且我获得了readResponse(InputStream input)回调,其中将响应作为json处理。

© www.soinside.com 2019 - 2024. All rights reserved.