我无法在我的 API 应用程序中显示。我无法在本地主机上运行,原因是什么?

问题描述 投票:0回答:1

我用 .NET 编写了 API。但我没有在本地主机中调用我的 Flutter。我该如何使用自己的 IP 地址。如何从 api 列出我的数据?如何在 Postman 中列出自己绳子上的数据?

我对应用程序中的代码有问题。我正在与您分享相关代码。

模型.dart

import 'dart:convert';

List<Sonuc> sonucFromJson(String str) => List<Sonuc>.from(json.decode(str).map((x) => Sonuc.fromJson(x)));

String sonucToJson(List<Sonuc> data) => json.encode(List<dynamic>.from(data.map((x) => x.toJson())));

class Sonuc {
  Sonuc({
    this.employeeId,
    this.employeeName,
    this.department,
    this.mailId,
    this.column1,
  });

  int employeeId;
  String employeeName;
  String department;
  String mailId;
  DateTime column1;

  factory Sonuc.fromJson(Map<String, dynamic> json) => Sonuc(
    employeeId: json["employeeID"],
    employeeName: json["employeeName"],
    department: json["department"],
    mailId: json["mailID"],
    column1: DateTime.parse(json["Column1"]),
  );

  Map<String, dynamic> toJson() => {
    "employeeID": employeeId,
    "employeeName": employeeName,
    "department": department,
    "mailID": mailId,
    "Column1": "${column1.year.toString().padLeft(4, '0')}-${column1.month.toString().padLeft(2, '0')}-${column1.day.toString().padLeft(2, '0')}",
  };
}

服务.dart

import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'package:rehber_uygulmasi_staj/modeller/sonuc.dart';


class Sonuclar {
  Future<List<Sonuc>> getSonuc() async {
    final String _url = "https://localhost:44333/api/employee";

    final Map<String, String> _headers = {'Accept': 'application/json', 'Content-Type': 'application/json', 'Charset': 'utf-8'};

    final http.Response response = await http.get(
      Uri.encodeFull(_url),
      headers: _headers,
    );

    if (response.statusCode == 200) {
      final _jsonBody = response.body;
      print("department: " + _jsonBody);
      final sonucResponse = sonucFromJson(_jsonBody);

      return sonucResponse;
    } else {
      throw Exception("Request failed with status: ${response.statusCode}");
    }
  }
}

视图.dart

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart';
import 'package:rehber_uygulmasi_staj/modeller/sonuc.dart';
import 'package:rehber_uygulmasi_staj/servisler/sonuc.dart';

class AramaSonuc extends StatefulWidget {
    @override
  _AramaSonucState createState() => _AramaSonucState();
}
class _AramaSonucState extends State<AramaSonuc> {
  final sonucService= Sonuclar();
  Future<List<Sonuc>> _future;
@override
  void initState() {
  _future = sonucService.getSonuc();
  super.initState();
  }
  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(backgroundColor:Colors.redAccent /*HexColor("#0e2d85")*/, title:  Text("Arama Sonucu",style: TextStyle(fontSize: 24),),),
      body: Container(
        child: FutureBuilder<List<Sonuc>>(
          future: _future,
            builder: (context, AsyncSnapshot<List<Sonuc>> snapshot){
            if(snapshot.hasData){
              return ListView.builder(
                scrollDirection: Axis.vertical,
                shrinkWrap: true,
                itemCount: snapshot.data.length,
                itemBuilder: (context,int index){
                  print("Data is here ${snapshot.data}");
                  return Card(
                    elevation: 4,
                    shape: RoundedRectangleBorder(
                      borderRadius: BorderRadius.circular(10),
                    ),
                    child: ListTile(
                      leading: Text(snapshot.data[index].department),
                      title: Text(snapshot.data[index].employeeName),
                      isThreeLine: true,
                      subtitle: Text('${snapshot.data[index].mailId}\n${snapshot.data[index].employeeId}'),
                    ),
                  );
                }
              );
            }
            else {
              print("Data is here ${snapshot.data}");
              return Center(
                child: CircularProgressIndicator(),
              );
            }
          }
        ),
      ),
    );
  }
.net flutter dart postman
1个回答
1
投票

您尝试过此处描述的解决方案吗?

如何在Flutter中使用Dart http包指向localhost:8000?

var client = createHttpClient();
client.get(new Uri.http("locahost:44333", "/api"));
© www.soinside.com 2019 - 2024. All rights reserved.