本教程展示如何使用c# . net 6控制台应用程序中的LEADTOOLS云服务从图像中提取所有条形码数据。
概述 | |
---|---|
总结 | 本教程介绍如何制作ExtractAllBarcodes 在c# . net 6控制台应用程序中使用LEADTOOLS云服务请求并处理结果。 |
完成时间 | 30分钟 |
项目 | 下载教程项目(2kb) |
平台 | LEADTOOLS云服务API |
IDE | Visual Studio 2022 |
语言 | c# .NET 6或更高版本 |
开发许可 | 下载LEADTOOLS |
用另一种语言试试 |
|
请务必查看以下站点,以获得有关LEADTOOLS云服务API的信息。
创建帐户使用LEADTOOLS托管云服务来获得两者应用程序ID而且密码字符串。
LEADTOOLS服务计划提供:
服务计划 | 描述 |
---|---|
免费试用 | 免费评估 |
页面包 | 预付费页包 |
订阅 | 预付月处理页 |
要进一步了解这些产品,请参阅托管云服务页面。
如需获取应用ID和应用密码,请参见使用LEADTOOLS托管云服务创建帐户和应用程序.
在Visual Studio中,创建一个新的c# .NET 6控制台项目,并添加以下所需的NuGet包:
Newtonsoft。Json
随着项目的创建、引用的添加和许可的设置,编码就可以开始了。
在解决方案资源管理器,打开Program.cs
.将下列语句添加到使用
顶部的块。
//在顶部使用块
使用系统;
使用包含;
使用System.Threading.Tasks;
使用System.Net;
使用System.Net.Http;
使用System.Net.Http.Headers;
使用先;
使用Newtonsoft.Json.Linq;
添加类字符串变量hostedServicesUrl
和async Task调用ExtractAllBarcodes ()
.这将发送一个ExtractAllBarcodes
请求到LEADTOOLS云服务,如果成功,将返回唯一标识符(GUID),然后使用该GUID进行查询。
私人静态字符串hostedServicesUrl =“https://azure.leadtools.com/api/”;
公共静态async Task ExtractAllBarcodes()
{
var客户端= InitClient();
//文件中要标记进行处理的第一页
intfirstPage = 1;
//发送一个-1的值将指示服务应该处理文件中的所有页面。
intlastPage = -1;
//如果使用URL到文件
字符串fileURL =“http://demo.leadtools.com/images/cloud_samples/barcode_sample.tif”;
字符串recognitionUrl =字符串.Format (“认可/ ExtractAllBarcodes吗?珍宝= {0}&lastPage = {1} &fileurl = {2} ", firstPage, lastPage, fileURL);
var结果=等待客户端。PostAsync (recognitionUrl零);
/*
//如果上传文件为多部分内容:
HttpContent byteccontent = new ByteArrayContent(file . readallbytes (@"path/to/file"));
byteccontent . headers . contentdisposition = new ContentDispositionHeaderValue("form-data")
{
Name = "attachment",
文件名= "file-name"
};
var formData = new MultipartFormDataContent();
formData。Add (byteContent formFieldName);
string recognitionUrl = string. format ("Recognition/ExtractAllBarcodes?firstPage={0}&lastPage={1}", firstPage, lastPage);
Var结果=等待客户。PostAsync (recognitionUrlformData);
formData.Dispose ();
* /
如果(结果。StatusCode == HttpStatusCode.OK)
{
//服务返回的唯一ID
字符串id = await result.Content.ReadAsStringAsync();
控制台。WriteLine (服务返回的唯一ID:+ id);
查询(id,客户端);
}
其他的
控制台。WriteLine ("请求失败,响应如下"+ result.StatusCode);
}
接下来,创建一个名为查询(字符串id, HttpClient)
控件提供的GUIDExtractAllBarcodes
的任务。如果成功,响应体将包含JSON格式的所有请求数据。
私人静态async任务查询(字符串HttpClient客户端
{
字符串queryUrl =字符串.Format (“查询?id = {0} "id.ToString ());
HttpResponseMessage结果;
字符串returnedContent;
JObject returnedData;
intfileStatus;
做
{
结果=等待客户端。PostAsync (queryUrl零);
returnedContent = await result.Content.ReadAsStringAsync();
返回数据= JObject.Parse(返回内容);
fileStatus = (int) returnedData。SelectToken (“FileStatus”) !;
//文件仍在处理中——在再次尝试之前,我们将使当前线程休眠5秒。
等待Task.Delay (5000);
}而(|| fileStatus == 123);
控制台。WriteLine ("文件已完成处理,返回代码:"+ returnedData。SelectToken (“FileStatus”));
如果((int) returnedData。SelectToken (“FileStatus”) !! = 200)
返回;
ParseJson (returnedData。SelectToken (“RequestData”) ! .ToString ());
}
然后,创建函数ParseJson (json字符串)
来处理返回的JSON数据。
私人静态无效ParseJson (字符串json)
{
JArray array = jray . parse (json);
foreach(varrequestReturn在数组)
{
控制台。WriteLine (“服务类型:”+ requestReturn。SelectToken (“ServiceType”));
varsubArray = JArray.Parse(requestReturn.SelectToken(“数据”) ! .ToString ());
控制台。WriteLine (返回的数据:“);
Console.WriteLine ();
foreach(varobj在子数组)
{
varsubObj = (JObject)obj;
foreach(var条目在subObj)
Console.WriteLine (entry.Key.ToString () +”:“+ entry.Value.ToString ());
控制台。WriteLine ("------------------------------------");
}
}
}
最后,创建函数InitClient ()
来创建一个客户端连接来请求GUID和JSON数据。替换为应用程序ID和替换为应用程序密码,请务必将您的申请编号及密码相应的行动。
私人静态HttpClient InitClient ()
{
字符串AppId =“替换为应用程序ID”;
字符串密码=“替换为应用程序密码”;
HttpClient客户端=新HttpClient ();
客户端。BaseAddress =新Uri (hostedServicesUrl);
client.DefaultRequestHeaders.Accept.Clear ();
client.DefaultRequestHeaders.Accept.Add (新MediaTypeWithQualityHeaderValue (“application / json”));
字符串authData =字符串.Format (“{0}:{1}”, AppId,密码);
字符串authHeaderValue = Convert.ToBase64String(Encoding.UTF8.GetBytes(authData));
client.DefaultRequestHeaders.Authorization =新AuthenticationHeaderValue (“基本”, authHeaderValue);
返回客户端;
}
为了测试运行此代码,请务必添加.GetResults .GetAwaiter ExtractAllBarcodes () () ();
到静空
部分。
按下运行项目F5,或选择Debug ->开始调试.
如果正确地执行了这些步骤,将出现控制台,应用程序将显示从返回的JSON数据中提取的条形码信息。
本教程展示了如何通过LEADTOOLS云服务API提取检查信息。