我开发了聊天应用程序。要在聊天中传输图像,我们首先将其上传到内容模块,然后将该id共享给接收者。如果出现问题,我们调用MessageListner中的getFile。但是,将相同的代码放在该方法之外工作很好。请查看以下代码:
mychatController.java
private MessageListener messageListener = new MessageListener() {
@Override
public void processMessage(Chat chat, Message message) {
System.out.println(String.format(">>> Message received (from=%s, to=%s): %s",from, to, message.getBody()));
if (onMessageReceivedListener != null)
{
onMessageReceivedListener.onMessageReceived(message);
}
}
};
这些方法在ChatActivity中实现
ChatActivity.java
private ChatController.OnMessageReceivedListener onMessageReceivedListener = new ChatController.OnMessageReceivedListener() { public void onMessageReceived(final Message message) { final String from = message.getFrom().split("-")[0]; final String messageString = message.getBody(); Log.v("----msg from----","from ap "+ from+"-----"+friend.getId().toString()); if(from.equalsIgnoreCase(friend.getId().toString())) { if(messageString.startsWith(">>In thread"); URL url = new URL(imageUrl); Log.v("---CONNECTION url---","In thread---"+url); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setRequestMethod("GET"); urlConnection.connect(); String fileDir=null; File file=null; File ffile; if(fileType==SELECT_IMAGE) { fileDir=SDCardRoot+"/Globr/Images"; } ffile=new File(fileDir); if(!ffile.exists()) { ffile.mkdirs(); } file = new File(fileDir,filename); Log.v("---folder file name---","image folder fil created---"+filename); if(!file.exists()) { file.createNewFile(); } FileOutputStream fileOutput = new FileOutputStream(file); InputStream inputStream = urlConnection.getInputStream(); int totalSize = urlConnection.getContentLength(); int downloadedSize = 0; byte[] buffer = new byte[1024]; int bufferLength = 0; while ( (bufferLength = inputStream.read(buffer)) > 0 ) { fileOutput.write(buffer, 0, bufferLength); downloadedSize += bufferLength; Log.v("Progress:","downloadedSize:"+downloadedSize+"totalSize:"+ totalSize) ; } fileOutput.close(); Log.v("File:-------","file is : "+file); if(downloadedSize==totalSize) filepath=file.getAbsolutePath(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { filepath=null; e.printStackTrace(); } } }.start(); } @Override public void onComplete(Result result, Object o) { } }); } } }
日志:
04-19 18:02:26.163: I/System.out(25108): >>> Message received (from=110918, to=115738): <file_image 40418
04-19 18:02:26.193: V/--------IMAge--------(25108): --ID 40418--lenth--5---40418
04-19 18:02:26.193: D/QBASDK RestRequest(25108):
=========================================================
04-19 18:02:26.193: D/QBASDK RestRequest(25108): === REQUEST ==== 09a23d0f-5fa9-4306-94e8-9ebc8c44c9ec ===
04-19 18:02:26.193: D/QBASDK RestRequest(25108): REQUEST
04-19 18:02:26.193: D/QBASDK RestRequest(25108): GET https://api.quickblox.com/blobs/40418.json
04-19 18:02:26.193: D/QBASDK RestRequest(25108): HEADERS
04-19 18:02:26.193: D/QBASDK RestRequest(25108): QuickBlox-REST-API-Version=0.1.1
04-19 18:02:26.193: D/QBASDK RestRequest(25108): QB-SDK=Android 0.8.1
04-19 18:02:26.193: D/QBASDK RestRequest(25108): QB-Token=9c0e70b1c1b2a31bb497f6672e72563fa570d492
04-19 18:02:26.193: D/QBASDK RestRequest(25108):PARAMETERS
04-19 18:02:26.193: D/QBASDK RestRequest(25108):INLINE
04-19 18:02:26.193: D/QBASDK RestRequest(25108):GET https://api.quickblox.com/blobs/40418.json
04-19 18:02:37.304: D/SMACK(25108): 06:02:37 PM SENT (1118266312):
04-19 18:02:43.050: D/GestureDetector(25108): [Surface Touch Event] mSweepDown False, mLRSDCnt : -1 mTouchCnt : 5 mFalseSizeCnt:0
04-19 18:03:03.360: D/GestureDetector(25108): [Surface Touch Event] mSweepDown False, mLRSDCnt : -1 mTouchCnt : 5 mFalseSizeCnt:0
04-19 18:03:07.304: D/SMACK(25108): 06:03:07 PM SENT (1118266312):
我们无法得到回应。
onMessageReceived方法可以调用非主线程或类似的东西
尝试在主线程上调用代码
我想创建一些基于Spring的REST服务示例。我想得到基于Foo对象的JSON,但是当我尝试使用curl发送请求时,它显示406错误:“此请求标识的资源仅能够根据请求“接受”标题生成具有不可接受特征的响应。”这是我的代码: RestControl.java 福。爪哇: 网状物xml: mvc调度程序servlet。xml: Upd2:org。科德豪斯。杰克逊制图器asl 1.9。13
我经常使用来运行React应用程序 这些天来,我试图使用这个命令,但我遇到了一个错误 它就像这样 附言:我正在使用ubuntu 20.04 我已经删除了缓存, 我删除node_modules并运行npm安装 我仍然面临同样的问题 如果我使用sudo npm启动,一切正常
我在main.go中创建了一个简单的反向代理,如下所示: 这工作正常,但是,我想记录从服务器返回的响应。我也可以使用Go语言推荐的标准RoundTrip方法中的以下代码来实现这一点: 除了响应之外,上述所有功能都可以正常工作,当内容编码为gzip时,字符串在日志中显示为非utf8 gzip字符。这似乎是golang的疏忽,但可能是我在文档中遗漏了一些东西,我已经读了好几遍了。我不能在这里发布日志,
我正在尝试访问为执行验证而编写的HttpServerResponse主体。但是,<代码>ctx。回答endHandler(e-
我正在用空手道的bdd方法编写api测试自动代码。断言部分让我很难过。我的响应如下所示,当我调用路径时,我通过http://jsonpath.herokuapp.com/网站检查了空空数组。然而,当我运行我的小cucumber空手道功能,然后它给我的响应为空,它仍然给我错误断言。它说实际: null,应为:null。。。 我看不到任何错误,如何修复?这是一个bug还是有什么方法可以处理? 我的回应
如果访问令牌请求是有效的且被授权,授权服务器如5.1节所述颁发访问令牌以及可选的刷新令牌。刷新令牌不应该包含在内。 如果请求因客户端身份验证失败或无效,授权服务器如5.2节所述的返回错误响应。 一个样例成功响应: HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 Cache-Control: no-store Pragma: