1

我正在使用 Codename 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() );
4

2 回答 2

0

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

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

  1. 派生连接请求并覆盖:protected void readResponse(InputStream input)
  2. 用于addResponseListener将侦听器绑定到用户响应。
  3. 用于addToQueueAndWait检测上传是否完成,然后调用getResponseData()以获取字节数组数据。
于 2014-05-25T04:37:56.283 回答
0

我有同样的问题!在后端,我正在使用Spring boot,我的上传控制器被简单地标记为@Controller当更改为时@RestController,它工作正常并且我得到了readResponse(InputStream input)回调,我将响应作为 JSON 处理。

于 2020-05-06T05:50:23.267 回答