javascript - 在 Android 上接收文件
问题描述
我在使用函数 sendFile 发送文本文件的服务器上有一个 Javascript 代码。使用来自终端的 curl,一切正常,我可以看到发送的文件的内容。我需要从 Android 应用程序中做同样的事情(我没有从头开始设计应用程序,所以我必须使用相同的架构/结构)。
Android 应用程序应该从服务器接收一个文本文件(使用 sendFile 发送)。我确实为收到的数据建立了一个模型,我想象收到的内容是一个列表(字符串)。我最终遇到了一个例外:
retrofit.RetrofitError: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: 预期 BEGIN_OBJECT 但在第 1 行第 1 列路径 $
如何构建我的模型以接收对象?我现在的模型是这样的:
public class UsedModel {
public List<String> msg;
}
看来 sendFile 没有发送 Json 格式。像这样的 curl 调用(来自 linux 机器):
curl --request GET -H 'Content-Type: application/json' server_address/api/getApiWithSendFile | json_pp
基本回归
格式错误的 JSON 字符串,既不是数组、对象、数字、字符串也不是原子,位于 /usr/bin/json_pp5.18 第 45 行的字符偏移量 0(在“从服务器接收到的文本...”之前)。
所以看起来我没有收到 Json ......这是问题吗?
有什么建议吗?
我想避免以其他方式修改 javascript 服务器端。
谢谢
解决方案
如果您收到错误消息:
retrofit.RetrofitError: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: 预期 BEGIN_OBJECT 但在第 1 行第 1 列路径 $
意味着您收到的响应不是Json Object,请确保您的响应返回类似{...}
,以{
左大括号开头并以}
右大括号结尾的内容。
推荐阅读
- docker - Docker 容器未注册 ips
- reactjs - 如何从 localStorage 中获取 key 的值并通过 hooks 将其输入?
- asp.net-core - 设置 ASP.NET 身份多因素
- docker - 我应该如何为开发数据库构建 docker 映像?
- python-3.x - Codeforces:正确的提交给出运行时错误
- python - 通过 groupby pandas 找到每个赛季进球最多的球队
- node.js - JWT 令牌不能设置为标头(节点和 express.js)
- soap - 我们可以自定义 WSDL 文件 (SAOP) 中 simpleType 的模式失败的错误消息吗?
- linux - 使用用户名和密码通过 Powershell 与 Azure 交互时出现奇怪的消息
- mathjax - 如何在浏览器中仅重新呈现 MathJax 公式的一部分?