我想让我的应用程序获取一个html网页,但无论我尝试monkey c/garmin连接什么,我都会得到-400



即使我在garmin网站上发现的这个例子也有同样的问题

https://developer.garmin.com/connect-iq/core-topics/https/

import Toybox.System;
import Toybox.Communications;
import Toybox.Lang;
class JsonTransaction {
// set up the response callback function
function onReceive(responseCode as Number, data as Dictionary?) as Void {
if (responseCode == 200) {
System.println("Request Successful");                   // print success
} else {
System.println("Response: " + responseCode);            // print response code
}
}
function makeRequest() as Void {
var url = "https://www.garmin.com";                         // set the url
var params = {                                              // set the parameters
"definedParams" => "123456789abcdefg"
};
var options = {                                             // set the options
:method => Communications.HTTP_REQUEST_METHOD_GET,      // set HTTP method
:headers => {                                           // set headers
"Content-Type" => Communications.REQUEST_CONTENT_TYPE_URL_ENCODED},
// set response type
:responseType => Communications.HTTP_RESPONSE_CONTENT_TYPE_URL_ENCODED
};
var responseCallback = method(:onReceive);                  // set responseCallback to
// onReceive() method
// Make the Communications.makeWebRequest() call
Communications.makeWebRequest(url, params, options, method(:onReceive));
}
}

有人能告诉我我做错了什么吗

返回代码-400的意思是"响应正文数据对于请求类型无效"根据SDK规范。

您请求的响应类型为Communications.HTTP_RESPONSE_CONTENT_TYPE_URL_ENCODED,但在您的问题中,您表示希望返回HTML,几乎可以肯定,HTML不能被解析为URL编码的表单参数。

SDK似乎不支持HTML响应类型。即使您省略了预期的响应类型,服务器可能仍然会发送";application/html";并且SDK声明";如果来自响应的内容类型报头不是已知HTTP_response_Content_Type_*类型之一;,所以我猜你运气不好。

也许你可以尝试请求HTTP_RESPONSE_CONTENT_TYPE_TEXT_PLAIN,以便让服务器返回文本而不是HTML,然后你可以以某种方式使用它?

相关内容

  • 没有找到相关文章

最新更新