我正在使用代号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() );
我建议您使用addData方法,该方法接受文件URL而不是字节数组,因为字节数组版本可能会超出设备内存(例如,对于较大的视频或低内存设备)。
您可以像其他任何连接请求一样读取响应:
protected void readResponse(InputStream input)
addResponseListener
将侦听器绑定到用户响应。addToQueueAndWait
检测到上传已完成,然后调用getResponseData()
以获取字节数组数据。我有同样的问题!在后端,我正在使用Spring boot,将我的上载控制器更改为@RestController时,仅将其标记为@Controller,它可以正常工作,并且我获得了readResponse(InputStream input)回调,其中将响应作为json处理。