我正在尝试从服务器获取 JSON 响应并将其输出到控制台。
Future<String> login() async {
var response = await http.get(
Uri.encodeFull("https://etrans.herokuapp.com/test/2"),
headers: {"Accept": "application/json"});
this.setState(() {
data = json.decode(response.body);
});
print(data[0].name);
return "Success!";
}
Run Code Online (Sandbox Code Playgroud)
未处理的异常:类型“_InternalLinkedHashMap<String, dynamic>”不是“List”类型的子类型
可能是什么原因?
我对 Flutter Provider 模式有疑问。用户重定向到新屏幕后,找不到提供程序。
按照我之前的问题(在此小部件上方找不到正确的提供者),我编写了以下代码:
class NewRoute extends StatelessWidget {
@override
Widget build(BuildContext context) {
final title = 'Tap to select';
return MaterialApp(
title: title,
home: Scaffold(
appBar: AppBar(
title: Text(title),
),
body: NewRouteBody()
));
}
}
class NewRouteBody extends StatelessWidget {
@override
Widget build(BuildContext context) {
var user = Provider.of<UserRepository>(context);
return ListView(...)
Run Code Online (Sandbox Code Playgroud)
我做了同样的事情,但我再次收到错误消息,指出它无法在此小部件 ( NewRouteBody)上方找到正确的提供程序。
试图以某种方式修复它,在谷歌上搜索了几个小时的答案但没有成功......
任何帮助表示赞赏。
编辑
这是UserRepository其中包含模式:
class UserRepository with ChangeNotifier {
User user;
Status _status = Status.Uninitialized;
Status get status => …Run Code Online (Sandbox Code Playgroud) 我正努力在Laravel中提出这个cURL请求
curl -d '{"key1":"value1", "key2":"value2"}' -H "Content-Type: application/json" -X GET http://my.domain.com/test.php
Run Code Online (Sandbox Code Playgroud)
我一直在尝试这个:
$endpoint = "http://my.domain.com/test.php";
$client = new \GuzzleHttp\Client();
$response = $client->post($endpoint, [
GuzzleHttp\RequestOptions::JSON => ['key1' => $id, 'key2' => 'Test'],
]);
$statusCode = $response->getStatusCode();
Run Code Online (Sandbox Code Playgroud)
但是我收到了一个错误 Class 'App\Http\Controllers\GuzzleHttp\RequestOptions' not found
有什么建议?
编辑
我需要从API中获取响应$response然后将其存储在DB中...我该怎么做?:/
我在使用 Flutter Provider 时遇到了问题......我的流程是这样的:登录用户 ID 被传递给新的小部件后 -> 从那里执行保存到数据库,然后重定向到新的小部件(仪表板)。
这是登录后小部件的代码:
return MaterialApp(
title: title,
home: Scaffold(
appBar: AppBar(
title: Text(title),
),
body: ListView(
children: <Widget>[
Container(
margin: EdgeInsets.all(8.0),
child: Card(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.all(Radius.circular(8.0))),
child: InkWell(
onTap: () {
var user = Provider.of<UserRepository>(context);
user.savePreference(user.user.id, "Something");
user.navigateToNewPage(Dashboard(), context);
print(user.user.id);
},
Run Code Online (Sandbox Code Playgroud)
这有效:
user.savePreference(user.user.id, "Something");
Run Code Online (Sandbox Code Playgroud)
但这导致了一个问题:
user.navigateToNewPage(Dashboard(), context);
Run Code Online (Sandbox Code Playgroud)
在仪表板小部件中,我正在创建:
Widget build(BuildContext context) {
var user = Provider.of<UserRepository>(context);
Run Code Online (Sandbox Code Playgroud)
在 UserRepository 我有这个:
class UserRepository with ChangeNotifier {
User user;
Status _status = Status.Uninitialized;
Status get status …Run Code Online (Sandbox Code Playgroud) 我正在从 Laravel 5.3 升级到 Laravel 5.4。问题是,当我运行时composer update,当涉及到php artisan optimize部分时,我收到错误:
[Symfony\Component\Debug\Exception\FatalErrorException]
Call to undefined method Illuminate\Foundation\Application::share()
Run Code Online (Sandbox Code Playgroud)
我在 StackOverflow 上读到了几个问题,答案是用单例替换这个共享方法。但我在哪里可以找到这个share()?
编辑
我的composer.json 文件:
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"php": ">=5.6.4",
"laravel/framework": "5.4.*",
"sngrl/sphinxsearch": "dev-master",
"laravelcollective/html": "5.4.*",
"aws/aws-sdk-php-laravel": "~3.0",
"league/flysystem-aws-s3-v3": "^1.0",
"mcamara/laravel-localization": "1.2.*",
"league/csv": "^8.2",
"mikehaertl/phpwkhtmltopdf": "^2.2",
"barryvdh/laravel-snappy": "^0.3.3",
"wemersonjanuario/wkhtmltopdf-windows": "dev-master",
"nesbot/carbon": "^1.22",
"uxweb/sweet-alert": "^1.4",
"laracasts/flash": "^2.0",
"guzzlehttp/guzzle": "^6.2",
"illuminate/support": "5.4.*",
"laravel/scout": "^3.0"
},
"require-dev": {
"fzaninotto/faker": …Run Code Online (Sandbox Code Playgroud) 我有两条路线.
Route::get('/receiveSignal', 'SignalController@receiveSignal');
Route::get('/sendSignal', 'SignalController@sendSignal');
Run Code Online (Sandbox Code Playgroud)
我想模拟从sendSignal接收信号路径发送数据.
所以,在发送信号功能时我有这个:
public function sendSignal()
{
$data = ['spotid' => '421156', 'name' => 'Test', 'desc' => 'some desc', 'StartofDetection' => '2018-01-17 22:22:22'];
$dataJson = json_encode($data);
return $dataJson;
}
Run Code Online (Sandbox Code Playgroud)
如何更改它以便receiveSignal像这样接收:
public function receiveSignal()
{
$test = file_get_contents('php://input');
dd($test);
}
Run Code Online (Sandbox Code Playgroud)
在我receiveSignal输入http:// localhost:8000/sendSignal后,我应该收到json .这有可能吗?
我正在尝试实现自动完成以在我的应用程序中选择位置。为此,我使用 Here Maps API。目前我有这个TextField:
onChanged: (query){
print("Current value is: ${query}");
if(query) { getPlacesFromHereMaps(query); }
},
Run Code Online (Sandbox Code Playgroud)
在这里,每次用户输入一些字母时,都会调用自动完成 API。
因此,如果用户输入“New York”,则意味着应用程序将调用 API 大约 8 次,我发现这太多了。有没有办法优化这个?
我有一个按钮,按下后会在数据库中插入一些内容并将用户重定向到另一个页面。我正在尝试实现 FutureBuilder,它应该显示CircularProgressIndicator直到一切完成。
这是我的功能:
Future<bool> insertPhoneNumber(String phoneNumber) async {
String token = await getToken();
if (token.isNotEmpty) {
var body = jsonEncode({'token': token, 'userID': user.getUserID(), 'phoneNumber': phoneNumber});
print(body.toString());
var res = await http.post((baseUrl + "/insertPhoneNumber/" + user.getUserID()),
body: body,
headers: {
"Accept": "application/json",
"content-type": "application/json"
});
if (res.statusCode == 200) {
print("Insert Phone Number is OK");
notifyListeners();
return true;
} else {
print("Insert Phone Number not OK");
notifyListeners();
return false;
}
} else {
print("Insert Phone Number failed due to …Run Code Online (Sandbox Code Playgroud) 我想像 Messenger (Facebook) 那样添加应用内(视频)呼叫。当一方创建频道而另一方加入时,它起作用。
但是有没有办法创建通话屏幕,让 B 方可以接听或拒绝来电?我正在查看 Agora.io 文档,但找不到任何适合于此的内容。
虽然这是我的代码...
Future<void> initialize() async {
if (APP_ID.isEmpty) {
setState(() {
_infoStrings.add(
'APP_ID missing, please provide your APP_ID in settings.dart',
);
_infoStrings.add('Agora Engine is not starting');
});
return;
}
await _initAgoraRtcEngine();
_addAgoraEventHandlers();
await AgoraRtcEngine.enableWebSdkInteroperability(true);
await AgoraRtcEngine.setParameters('''
{\"che.video.lowBitRateStreamParameter\":{\"width\":320,\"height\":180,\"frameRate\":15,\"bitRate\":140}}''');
await AgoraRtcEngine.joinChannel(null, 'Test', null, 0);
}
Future<void> _initAgoraRtcEngine() async {
AgoraRtcEngine.create(APP_ID);
AgoraRtcEngine.enableVideo();
}
void _addAgoraEventHandlers() {
AgoraRtcEngine.onError = (dynamic code) {
setState(() {
final info = 'onError: $code';
_infoStrings.add(info);
});
};
AgoraRtcEngine.onJoinChannelSuccess = (
String …Run Code Online (Sandbox Code Playgroud) 我将此数据作为 .csv 存储在 S3 中(但它可以是最适合我的要求的任何其他文件格式):
"41.9100687,-87.8805614","41.9802511,-87.8803253","41.9806802,-87.8792417","41.9810128,-87.8785121","41.9200687,-87.8805614","41.9802511,-87.8803253","41.9806802,-87.8792417",
"41.9100687,-87.8805614","41.9802511,-87.8803253","41.9806802,-87.8792417","41.9810128,-87.8785121","41.9200687,-87.8805614","41.9802511,-87.8803253","41.9806802,-87.8792417",
"41.9100687,-87.8805614","41.9802511,-87.8803253","41.9806802,-87.8792417","41.9810128,-87.8785121","41.9200687,-87.8805614","41.9802511,-87.8803253","41.9806802,-87.8792417",
"41.9100687,-87.8805614","41.9802511,-87.8803253","41.9806802,-87.8792417","41.9810128,-87.8785121","41.9200687,-87.8805614","41.9802511,-87.8803253","41.9806802,-87.8792417",
Run Code Online (Sandbox Code Playgroud)
我想每列有一个坐标:
像这样:
坐标:
1. 41.9100687,-87.8805614
2. 41.9802511,-87.8803253
3. 41.9806802,-87.8792417
Run Code Online (Sandbox Code Playgroud)
导入 S3 后,我选择 CSV 作为数据类型...然后添加字符串列。
但相反,我得到了一些奇怪的表格输出。除此之外,我尝试将其作为带有逗号分隔符的纯 txt 文件导入。我得到了同样奇怪的输出。
我在这里做错了什么?
编辑
此test列屏幕截图来自另一个但相同的示例。应该有gps_coordinates