【发布时间】:2021-06-30 19:50:18
【问题描述】:
好的,我已经操作这个字符串好几个小时了!因此,非常感谢任何帮助
我正在尝试简单地拨打电话并生成密码。该 api 被设置为接收一个字符串 a 解析 json 格式的字符串本身。
private headers = new HttpHeaders({ 'Content-Type': 'application/json' });
constructor(http: HttpClient) {
var url: string = 'https://eus-safeaccounts-test.azurewebsites.net/' + 'passwords/generate';
var body: string = '"{\"regex\":\"[a-zA-Z0-9]\",\"minLength\":8,\"maxLength\":12}"';
http.post<string>(url, body, { headers: this.headers }).subscribe(result => {
this.signUpResponseStr = result["password"];
}, error => console.error(error));
}
此调用返回代码 400 错误请求。 (我认为是因为文本没有被视为 json?)
但是,如果我们设置body = '""';,那么我们会得到一个从 api 发回的密码,这没有问题。它在 API 端被视为一个空字符串,然后他们给我们一个密码。进一步探索我尝试设置body = '"abc"';,因为这是一个不遵循json格式的字符串。在这种情况下,我们不会收到错误的请求 400,但 api 会识别错误的 json 格式并返回 Invalid Json
我的问题:
我发送此请求的正文字符串应该是什么样的? API 是开放的,因此任何人都可以重现,API 代码不应该与 400 bad request 问题有任何关系,正如我们从我的探索中看到的那样,但代码在这里https://github.com/nickpavini/SafeAccountsAPI。
感谢您的帮助! :)
编辑:我也尝试过以JSON 类型发送,我也尝试过JSON.stringify(),但没有成功
【问题讨论】:
标签: json typescript rest