http - 颤动 http.post 给出 500 错误,而 api 在邮递员中工作正常
问题描述
此登录 API 在邮递员中运行良好,但我在颤振中收到500状态代码错误。
以下是调用 api 的服务代码:
import 'dart:convert';
import 'package:http/http.dart' as http;
...
class AuthService {
static const API_URL =
"http://ec2-15-185-73-129.me-south-1.compute.amazonaws.com";
static const headers = {
'Content-Type': 'application/json'
};
Future<APIResponse<AuthResponse>> signIn() async {
var body = jsonEncode({"username": "username", "password": "password"});
var response =
await http.post(API_URL + "/api-token-auth", headers: headers, body: body)));
print(response.body.toString());
print(response.request.toString());
if (response.statusCode == 200) {
// not reaching here
} else {
print(handleError(response.statusCode));
// response.statusCode is **500**
}
}
}
print(response.body.toString()) 给出以下输出:
<!DOCTYPE html>
I/flutter ( 6158): <html lang="en">
I/flutter ( 6158): <head>
I/flutter ( 6158): <meta http-equiv="content-type" content="text/html; charset=utf-8">
I/flutter ( 6158): <meta name="robots" content="NONE,NOARCHIVE">
I/flutter ( 6158): <title>RuntimeError
I/flutter ( 6158): at /api-token-auth</title>
I/flutter ( 6158): <style type="text/css">
I/flutter ( 6158): html * { padding:0; margin:0; }
I/flutter ( 6158): body * { padding:10px 20px; }
I/flutter ( 6158): body * * { padding:0; }
I/flutter ( 6158): body { font:small sans-serif; background-color:#fff; color:#000; }
I/flutter ( 6158): body>div { border-bottom:1px solid #ddd; }
I/flutter ( 6158): h1 { font-weight:normal; }
I/flutter ( 6158): h2 { margin-bottom:.8em; }
I/flutter ( 6158): h3 { margin:1em 0 .5em 0; }
I/flutter ( 6158): h4 { margin:0 0 .5em 0; font-weight: normal; }
I/flutter ( 6158): code, pre { font-size: 100%; white-space: pre-wrap; }
I/flutter ( 6158): table { border:1px solid #ccc; border-collapse: collapse; width:100%; background:white; }
I/flutter ( 6158): tbody td, tbody th { vertical-align:top; padding:2px 3px; }
I/flutter ( 6158): thead th {
I/flutter ( 6158): padding:1px 6px 1px 3px; background:#fefefe; text-align:left;
I/flutter ( 6158): font-weight:normal; font-size:11px; border:1px solid #ddd;
I/flutter ( 6158): }
I/flutter ( 6158): tbody th { width:12em; text-align:right; colo
print(response.request.toString()) 给出以下输出:
POST http://ec2-15-185-73-129.me-south-1.compute.amazonaws.com/api-token-auth
解决方案
替换网址:
API_URL + "/api-token-auth"
和
API_URL + "/api-token-auth/"
它有点奇怪。您的服务器端路由可能有问题,但尾随/
其工作。
推荐阅读
- apache-spark - Apache Spark 流式传输大量 csv 文本文件,其标头包含重要信息
- java - Spring - 使用基于接口的投影是否比基于类的投影 (DTO) 更优化?
- c++ - 如何在单元质心处存储 vtkUnstructuredGrid 的矢量场
- android - Android 8 (Oreo) BaseAdapter 的 getView() 未第二次调用
- julia - 在 Julia 中:查找具有缺失值的数组的均值
- ios - 以编程方式修改搜索栏高度及其文本字段高度是一种好习惯吗?
- php - 试图在 json 数组中搜索
- django - 字体真棒不显示图标
- laravel - 将 mysql 查询转换为 Laravel 的 DB:Query Builder
- c# - Adobe Sign In API(回显符号)获取库文档