【发布时间】:2016-06-08 22:56:42
【问题描述】:
我正在尝试从我的 C# 应用程序调用此 API: https://ocr.space/OCRAPI
当我从 curl 调用它时,它工作正常:
curl -k --form "file=@filename.jpg" --form "apikey=helloworld" --form "language=eng" https://api.ocr.space/Parse/Image
我是这样实现的:
[TestMethod]
public async Task Test_Curl_Call()
{
var client = new HttpClient();
String cur_dir = Directory.GetCurrentDirectory();
// Create the HttpContent for the form to be posted.
var requestContent = new FormUrlEncodedContent(new[] {
new KeyValuePair<string, string>( "file", "@filename.jpg"), //I also tried "filename.jpg"
new KeyValuePair<string, string>( "apikey", "helloworld" ),
new KeyValuePair<string, string>( "language", "eng")});
// Get the response.
HttpResponseMessage response = await client.PostAsync(
"https://api.ocr.space/Parse/Image",
requestContent);
// Get the response content.
HttpContent responseContent = response.Content;
// Get the stream of the content.
using (var reader = new StreamReader(await responseContent.ReadAsStreamAsync()))
{
// Write the output.
String result = await reader.ReadToEndAsync();
Console.WriteLine(result);
}
}
我得到了这个答案:
{
"ParsedResults":null,
"OCRExitCode":99,
"IsErroredOnProcessing":true,
"ErrorMessage":"No file uploaded or URL provided",
"ErrorDetails":"",
"ProcessingTimeInMilliseconds":"0"
}
有什么线索吗?
"file=@filename.jpg" 中的 @ 字符是什么?
我把我的 filename.jpg 文件放在项目和测试项目 bin/debug 目录中,并在调试模式下运行我的测试项目。
所以我不认为错误指向的文件不是预期的。 我宁愿怀疑我的代码中有语法错误。
【问题讨论】: