首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >HttpRequest是否使用sendData作为查询参数?

HttpRequest是否使用sendData作为查询参数?
EN

Stack Overflow用户
提问于 2014-01-03 14:32:28
回答 3查看 1.6K关注 0票数 3

这个问题有点类似于HTTPRequest.request和sendData,似乎不能让这件事成功,但我现在有了更多的信息。这里的目标是发送带有查询参数的GET请求。我最初试图以这样的方式发送我的请求:

代码语言:javascript
复制
HttpRequest request = new HttpRequest();

request.open("GET", _url, async:true);
request.onError.listen(_onLoadError, onError: _onLoadError);
request.send(sendData);

其中sendData是一个遵循查询参数(?myVariable=2&myOtherVariable=a等)的正常格式的字符串,因为这是这里的最终目标。请求被发送,但在任何监视工具(我使用的是查尔斯)中,都没有看到任何附加数据(sendData)。然后我试着:

代码语言:javascript
复制
HttpRequest request = new HttpRequest();

request.open("GET", _url + sendData, async:true);
request.onError.listen(_onLoadError, onError: _onLoadError);
request.send();

所以现在我只是将查询字符串附加到url本身。这是按照预期的工作,但远不是优雅的。有没有更好的解决办法?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-01-03 14:40:44

根据W3 XMLHttpRequest规范

(在send()方法中)如果请求方法是GET或HEAD,则忽略参数。

所以这个问题的简单答案是否定的。sendData不能附加到GET请求,这是由XMLHttpRequest规范而不是Dart的限制。

尽管如此,对于像这样的请求,使用HttpRequest.getString可能更容易理解和使用。

代码语言:javascript
复制
HttpRequest.getString(_url + sendData).then((HttpRequest req) {
    // ... Code here
}).catchError(_onLoadError);
票数 3
EN

Stack Overflow用户

发布于 2014-01-03 14:54:19

GET请求中,您总是将查询字符串添加到URL吗?当您创建Uri时,您可以传递一个带有查询参数的映射,如果您觉得这更优雅的话。

代码语言:javascript
复制
Map query = {'xx':'yy', 'zz' : 'ss'};
String url = "http://localhost:8080/myapp/signinService";

Uri uri = new Uri(path: url, queryParameters : query);

HttpRequest.getString(uri.toString().then((HttpRequest req) ...
票数 9
EN

Stack Overflow用户

发布于 2018-06-03 05:39:04

如果要从URL (String) +查询参数(Map)生成有效的url,可以执行以下操作:

代码语言:javascript
复制
 Uri uri = Uri.parse(url).replace(queryParameters: parameters);
 String finalURL = uri.toString();

url是String,参数是Map

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20905917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档