在flutter中我尝试使用DIO包发布数据,我发布了一些数据:
final response = await dio.post(
"127.0.0.1/toko_grosir_api/create.php",
data: {
'name': '${event.product.nameProduct}',
'price': '${event.product.priceProduct}',
'desc': '${event.product.descProduct}',
'stock': '${event.product.stockProduct}',
'date': '${event.product.dateProduct}',
'category': '${event.product.categoryProduct}'
},
options: Options(
contentType: Headers.formUrlEncodedContentType,
),
);
我正在尝试使用 PHP 作为 Rest API 接收数据,代码如下:
$nameProd = isset($_POST['name']) ? $_POST['name'] : null;
$priceProd = isset($_POST['price']) ? $_POST['price'] : null;
$descProd = isset($_POST['desc']) ? $_POST['desc'] : null;
$stockProd = isset($_POST['stock']) ? $_POST['stock'] : null;
$dateProd = isset($_POST['date']) ? $_POST['date'] : null;
$categoryProd = isset($_POST['category']) ? $_POST['category'] : null;
但是,在 POST 数据时会显示错误,如下所示:
抛出此异常是因为响应的状态代码为 404 和 RequestOptions.validateStatus 配置为此抛出 状态码。 404状态码的含义如下:“客户端 错误 - 请求包含错误语法或无法满足”阅读 有关状态代码的更多信息,请访问 https://developer.mozilla.org/en-US/docs/Web/HTTP/Status 为了 解决此异常,您通常必须验证并修复 您的请求代码,或者您必须修复服务器代码。
我已经使用 postman 尝试了 PHP Rest API,它根据 Rest API 中所需的变量工作,我的代码有什么问题吗?
我遇到了同样的错误。
您从 DioException 中得到什么信息?查看
Response
内部元素,例如 data
。我在后面使用 NET Web API,在前面使用 Flutter,在 data
内容中我可以看到以下消息:
“消息”->“未找到与请求 URI 'http://localhost/WebApiTest/api/Test/save' 匹配的 HTTP 资源。”
并且:
“MessageDetail”->“在控制器“Test”上未找到与请求匹配的操作。”
就我而言,我调用的端点不存在。这就是为什么我收到此异常(screenshot)。一旦我创建了缺失的端点,异常就消失了。
阅读下面的内容 我已经用文章解决了这个问题
https://medium.com/@podcoder/connecting-flutter-application-to-localhost-a1022df63130