0

ネットワーク上の任意のマシンからアクセスできるように、この HTTPServer のホスト名を変更しようとしましたが、サイトにはまだ localhost からしかアクセスできません。「0.0.0.0」ホスト名文字列を InternetAddress に解析しようとしましたが、これもうまくいきませんでした。

import 'package:shelf_router/shelf_router.dart';
import 'package:shelf/shelf.dart';
import 'package:shelf/shelf_io.dart' as io;
import 'dart:convert';

void main(List<String> arguments) async {
  final app = Router();
  const _hostname = "0.0.0.0";
  const _port = 8080;

  app.get('/', (Request request) {
    var queryParameters = request.requestedUri.queryParameters;
    var error = false;
    var resultMessage = "";
    int x, y, z;

    print(request);

    if (queryParameters["x"] != null)
      try {
        x = int.parse(queryParameters["x"]);
      } on FormatException {
        resultMessage =
            resultMessage + "Please provide a numerical value for x.";
        error = true;
      }
    else {
      resultMessage = resultMessage + "Please provide a value for x.";
      error = true;
    }

    if (queryParameters["y"] != null)
      try {
        y = int.parse(queryParameters["y"]);
      } on FormatException {
        resultMessage =
            resultMessage + "Please provide a numerical value for y.";
        error = true;
      }
    else {
      resultMessage = resultMessage + "Please provide a value for y.";
      error = true;
    }

    if (error) {
      var test = {"error": true, "string": resultMessage, "answer": 0};
      //var resp = new Response(400);
      return Response.ok(json.encode(test));
    } else {
      z = (x ~/ y);
    }

    var test = {"error": false, "string": "${x} / ${y} = ${z}", "answer": 0};
    return Response.ok(
      json.encode(test),
      headers: {
        'Content-Type': 'application/json',
        'Access-Control-Allow-Origin': '*'
      },
    );
  });

  await io.serve(app.handler, _hostname, _port);
}

ダーツを使うのはこれが初めてなので、コードの若さを許してください。

編集: 詳細 - IDE は VS Code であり、コマンド ラインで実行する Kali Linux です。私の計画は、これをコンテナー化して kubernetes クラスターにデプロイすることです。参考までに。

4

0 に答える 0