这个问题有点像 HTTPRequest.request with sendData, can't seem to get this to work 的重复,但我现在有更多信息。这里的目标是发送一个带有查询参数的 GET 请求。我最初尝试这样发送我的请求:

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)(我使用的是 Charles)。然后我尝试:

HttpRequest request = new HttpRequest();

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

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

最佳答案

根据 W3 XMLHttpRequest Specification :



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

也就是说,对于这样的请求,使用 HttpRequest.getString 可能更具可读性和习惯性

HttpRequest.getString(_url + sendData).then((HttpRequest req) {
    // ... Code here
}).catchError(_onLoadError);

关于dart - 使用sendData 作为查询参数的HttpRequest GET?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20905917/

10-13 05:46