- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我是 flutter/dart 的新用户,正在将 Android 原生应用程序转换为 flutter。
我正在对我(在 LUA 中)编写的物联网设备(NodeMCU ESP8266)进行 REST 调用,并在(io_client.dart)中的 IOClient 发送函数中抛出异常“无效响应原因短语”。
其余调用在我尝试过的所有其他设备上均成功。
现有代码使用 RetroFit 并且工作正常。我的 Linux PC 上的 Postman 还可以,chrome 和 firefox 也是如此。三星设备的 Chrome 也可以。
如果我改为在我的 Linux PC 上从 json-server(npm 包)提供相同的数据,那么获取成功,所以这肯定与我从 ESP8266 提供响应的内容/方式有关。下面是调用的 Wireshark 跟踪
GET /pins HTTP/1.1
user-agent: Dart/2.1 (dart:io)
accept-encoding: gzip
content-length: 0
host: 192.168.1.78:8080
HTTP/1.1 200 OK
Connection: close
Content-Length: 230
Content-Type: application/json; charset=utf-8
[{"DeactivationTime":0,"OffTime":0,"Name":"Left Deck","MaxOnTime":888,"Pin":1,"ActivationTime":0,"IsActive":false},{"DeactivationTime":0,"OffTime":0,"Name":"Right Deck","MaxOnTime":888,"Pin":2,"ActivationTime":0,"IsActive":false}]
下面是我能做的最简单的测试
String url = 'http://192.168.1.78:8080/pins';
try {
http.get(Uri.parse(url)).then((result) {
debugPrint(result.body.toString());
});
} catch (error) {
debugPrint(error.toString());
}
即使是 404 响应,我也会收到同样的错误。当与 json-server 交谈时,调试输出是预期的 json 对象。我已经尝试使用 header 来匹配 json-server 返回的内容,但无济于事。此外,上面的捕获物永远不会被击中。
只是为了澄清,这里是 Wireshark 的十六进制转储
00000000 47 45 54 20 2f 70 69 6e 73 20 48 54 54 50 2f 31 GET /pin s HTTP/1
00000010 2e 31 0d 0a 75 73 65 72 2d 61 67 65 6e 74 3a 20 .1..user -agent:
00000020 44 61 72 74 2f 32 2e 31 20 28 64 61 72 74 3a 69 Dart/2.1 (dart:i
00000030 6f 29 0d 0a 61 63 63 65 70 74 2d 65 6e 63 6f 64 o)..acce pt-encod
00000040 69 6e 67 3a 20 67 7a 69 70 0d 0a 63 6f 6e 74 65 ing: gzi p..conte
00000050 6e 74 2d 6c 65 6e 67 74 68 3a 20 30 0d 0a 68 6f nt-lengt h: 0..ho
00000060 73 74 3a 20 31 39 32 2e 31 36 38 2e 31 2e 37 38 st: 192. 168.1.78
00000070 3a 38 30 38 30 0d 0a 0d 0a :8080... .
00000000 48 54 54 50 2f 31 2e 31 20 32 30 30 20 4f 4b 20 HTTP/1.1 200 OK
00000010 0a .
00000011 43 6f 6e 6e 65 63 74 69 6f 6e 3a 20 63 6c 6f 73 Connecti on: clos
00000021 65 0a e.
00000023 43 6f 6e 74 65 6e 74 2d 4c 65 6e 67 74 68 3a 20 Content- Length:
00000033 32 33 30 0a 230.
00000037 43 6f 6e 74 65 6e 74 2d 54 79 70 65 3a 20 61 70 Content- Type: ap
00000047 70 6c 69 63 61 74 69 6f 6e 2f 6a 73 6f 6e 3b 20 plicatio n/json;
00000057 63 68 61 72 73 65 74 3d 75 74 66 2d 38 0a 0a charset= utf-8..
00000066 5b 7b 22 44 65 61 63 74 69 76 61 74 69 6f 6e 54 [{"Deact ivationT
00000076 69 6d 65 22 3a 30 2c 22 4f 66 66 54 69 6d 65 22 ime":0," OffTime"
00000086 3a 30 2c 22 4e 61 6d 65 22 3a 22 4c 65 66 74 20 :0,"Name ":"Left
00000096 44 65 63 6b 22 2c 22 4d 61 78 4f 6e 54 69 6d 65 Deck","M axOnTime
000000A6 22 3a 38 38 38 2c 22 50 69 6e 22 3a 31 2c 22 41 ":888,"P in":1,"A
000000B6 63 74 69 76 61 74 69 6f 6e 54 69 6d 65 22 3a 30 ctivatio nTime":0
000000C6 2c 22 49 73 41 63 74 69 76 65 22 3a 66 61 6c 73 ,"IsActi ve":fals
000000D6 65 7d 2c 7b 22 44 65 61 63 74 69 76 61 74 69 6f e},{"Dea ctivatio
000000E6 6e 54 69 6d 65 22 3a 30 2c 22 4f 66 66 54 69 6d nTime":0 ,"OffTim
000000F6 65 22 3a 30 2c 22 4e 61 6d 65 22 3a 22 52 69 67 e":0,"Na me":"Rig
00000106 68 74 20 44 65 63 6b 22 2c 22 4d 61 78 4f 6e 54 ht Deck" ,"MaxOnT
00000116 69 6d 65 22 3a 38 38 38 2c 22 50 69 6e 22 3a 32 ime":888 ,"Pin":2
00000126 2c 22 41 63 74 69 76 61 74 69 6f 6e 54 69 6d 65 ,"Activa tionTime
00000136 22 3a 30 2c 22 49 73 41 63 74 69 76 65 22 3a 66 ":0,"IsA ctive":f
00000146 61 6c 73 65 7d 5d alse}]
最佳答案
您的服务器提供的 HTTP 略有错误。每个标题行 should end with 0d 0a
,而不仅仅是 0a
。此外,最后一个 header 和正文之间的分隔符应该是 0d 0a 0d 0a
而不是 0a 0a
。
关于rest - http GET 中的 ClientException "Invalid response reason phrase",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53940678/
我不确定如何进行这项工作。我也无法在我的应用程序中找到 client_id。我只看到那里的应用程序 secret : >>> import praw >>> r = praw.Reddit(user_
由于 SocketTimeoutException 读取超时,我面临以下 ZuulException 异常。我试图将我的 oauth2 服务器放在 zuul 代理后面。请查看日志跟踪 here ,网关
我正在使用 HTTP dart 包 在 flutter 中执行这样的发布请求,但有时当网络出现故障时,IOClient 会抛出 ClientException类,但我在 catch block 和应用
当我尝试使用 Subclipse 比较 Eclipse 中的文件时,我收到以下错误消息: Unsupported working copy format svn: This client is too
我正在尝试开发一个Flutter(Web)应用程序,该应用程序需要调用访问受限的HTTP触发的云函数。 因此,我已经在我的Google云控制台中创建了一个服务帐户,并遵循了有关如何检索经过身份验证的h
这是异常(exception):ClientException:找不到ffmpeg。 该机器人托管在 replit 中,一直运行良好,这是一个新事物。 我必须做什么? async def play_m
我在自定义提供程序中使用redis类,但在服务器上不起作用。 在本地没有任何问题,但我不明白为什么它在服务器上不起作用。 当我使用工匠命令时,出现此错误。 “Predis \ ClientExcept
我正在尝试使用 Vision Cognitive Services 来接收图像的描述,但我的代码总是抛出此异常: Exception Microsoft.ProjectOxford.Vision.Cl
我正在尝试制作一个在语音 channel 中播放音乐的 discord 机器人。它连接到语音 channel ,但不播放任何内容。它还会在控制台中给出错误。 我在 Windows 上,我正在使用 di
我是 flutter/dart 的新用户,正在将 Android 原生应用程序转换为 flutter。 我正在对我(在 LUA 中)编写的物联网设备(NodeMCU ESP8266)进行 REST 调
这是server.js: const express = require("express"); const cors = require("cors"); const axios = require
这是server.js: const express = require("express"); const cors = require("cors"); const axios = require
SVN出现提示org.apache.subversion.javahl.ClientException: Attempted to lock an already-locked dir解决方案 第
我有一个 Spring boot 应用程序,该应用程序的实体在字段上具有唯一性约束。 我正在运行 spring-boot、spring-data-neo4j、neo4j-ogm、bolt-driver
我是 PHP 的绝对初学者(我来自 Java),我有以下与如何处理异常相关的问题。 我正在使用 Guzzle 执行对 REST 网络服务的调用,如下所示: $client = new Clie
我是 PHP 的绝对初学者(我来自 Java),我有以下与如何处理异常相关的问题。 我正在使用 Guzzle 执行对 REST 网络服务的调用,如下所示: $client = new Clie
我 try catch 异常,但我仍然在 C:\OS\OpenServer\domains\kinopoisk\parser\php\vendor 中收到“ fatal error :未捕获异常‘Gu
我是 SSL 的新手,所以如果我问了任何愚蠢的问题,请坦白。 我正在开发一个处理信用卡交易的 Java EE 网络应用程序。在这里,我尝试使用来自 cybersource 的 p12 证书。 我有一个
我正在设置 Laravel 应用程序以向 Google 进行身份验证。 系统提示我选择一个 Google 帐户并允许访问我的 Google 信息,我已准备好回调函数。 当我的回调函数运行时(它确实被正
我是一名优秀的程序员,十分优秀!