[英]Convert POST Request in C# to JavaScript
我需要将此 C# 代码转换为 JavaScript:
HttpClient client = new HttpClient();
string SECRET_KEY = "my_secret_key";
Byte[] bytes = System.IO.File.ReadAllBytes(@"c:\1.jpg");
string imagebase64 = Convert.ToBase64String(bytes);
var content = new StringContent(imagebase64);
var response = await client.PostAsync("https://api.openalpr.com/v2/recognize_bytes?recognize_vehicle=1&country=us&secret_key=" + SECRET_KEY, content).ConfigureAwait(false);
var buffer = await response.Content.ReadAsByteArrayAsync().ConfigureAwait(false);
var byteArray = buffer.ToArray();
var responseString = Encoding.UTF8.GetString(byteArray, 0, byteArray.Length);
我尝试在 JavaScript 中执行此操作:
var file = document.querySelector('input[type="file"]').files[0];
getBase64(file).then(
data => $.ajax({
type: 'POST',
url: 'https://api.openalpr.com/v2/recognize_bytes?recognize_vehicle=1&country=br&secret_key=' + secret_key,
contentType: 'text/plain; charset=utf-8',
data: data,
success: function (ret) {
console.log(ret);
},
error: function (ret) {
console.log(ret);
}
}
基本上,两者都旨在将图像转换为 Base64 并通过 POST 发送到 API 端点。
在这两种情况下,转换都按预期工作,但是在 JS 中出现错误。
错误 400:加载图像时出错
我无权访问此 API 的后端,也没有支持。 我认为有些要求是不同的,可能是类型的格式或其他东西......
您是否调试了获取 base64 格式的文件变量。 首先尝试一下,如果这不起作用,请尝试以下将文件转换为 base64 的方法:
const toBase64 = file => new Promise((resolve, reject) => {
const reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = () => resolve(reader.result);
reader.onerror = error => reject(error);
});
调用上述方法使用: toBase64(file)
一旦形成发布请求,请在邮递员工具中检查。 我希望它能解决您的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.