检查文件的状态。建议至少等待2秒之间的查询电话。比这更频繁地调用查询方法不会对应用程序性能产生任何影响。方法可以被称为Post或Get请求到以下网址:

[文章][有]https://azure.leadtools.com/api/Query

请求特定的参数

下面列出了可用的附加参数。

参数 描述 接受的价值观
id 对应于一个上传文件的唯一标识符。 一个有效的GUID

状态码

以下将返回状态代码调用方法时:

状态 描述
200年 查询请求成功完成
400年 请求未能有效以下原因之一:

*提供了无效的GUID
401年 AppID /密码组合是无效的,或不符合提供的GUID。
500年 有一个内部错误处理您的请求。

返回

一个成功的请求将返回一个JSON对象使用以下格式:

{“FileStatus”:,“RequestData”: []}

RequestData财产将是空虚的,除非文件状态值为200。可能文件状态如下:

文件状态 描述
One hundred. 目前正在处理的文件。
122年 文件还没有被设置为运行。这是通过的文件上传还是API调用,没有运行方法要求他们。
123年 文件正在进行验证。这是最近上传的文件通过还是API调用,或从一个单一的服务转换/识别调用。如果还是API方法被称为最初,文件的工作状态将被设置为122后,验证过程成功完成。如果其中一个被称为识别/转换单一服务API方法,然后文件的工作状态将被设置为100和处理将在文件开始。
200年 文件已经成功完成处理。的RequestData属性将包含一个序列化的所有相关信息列表的请求(s)的文件。不同的请求对象的JSON结构,请参阅常见的请求参数和返回对象部分
500年 有一个内部错误处理的文件。
501年 文件已被删除。文件/数据将自动被删除后24小时,或者DeleteRequestAPI调用方法。
502年 文件已经被拒绝了。文件将被拒绝如果不能验证过程。拒绝文件将自动被删除后24小时,或者DeleteRequestAPI方法
600年 处理的文件已经被中止,因为应用程序中没有足够的剩余页面。

例子

/ /这个示例使用请求NodeJs图书馆。const请求=要求(“请求”);var servicesUrl = " https://azure.leadtools.com/api/ ";var requestID = ' 00000000-0000-0000-0000-000000000000 ';函数queryServices (requestID){/ /函数查询请求的状态。如果请求尚未完成,这个函数将递归地调用自身,直到文件已经完成。var queryUrl = servicesUrl +“查询?id = " + requestID;request.post (getRequestOptions (queryUrl),异步函数(误差、响应体){var =结果JSON.parse(身体);如果(!& &结果(“FileStatus”)错误!=100 && results['FileStatus']!=123){ console.log("File finished processing with return code: " + response.statusCode); if(results['FileStatus']!=200){ return; } console.log("Results: \n"); console.log(results['RequestData']); }else{ //The file has not yet finished processing. await function(){ return new Promise(resolve=> setTimeout(resolve, 5000)); //Sleep for 5 seconds before trying again } queryServices(requestID); //Call the method again. } }); } function getRequestOptions(url){ //Function to generate and return HTTP request options. var requestOptions ={ url: url, headers: { 'Content-Length' : 0 }, auth: { user:"Enter Application ID", password:"Enter Application Password" } }; return requestOptions; }
使用系统;使用System.Collections.Generic;使用来;使用text;使用System.Threading.Tasks;使用System.Threading;使用System.Net;使用System.Net.Http;使用System.Net.Http.Headers;使用Newtonsoft.Json.Linq; namespace Azure_Code_Snippets.DocumentationSnippets { class CloudServices_Query_Demo { private string hostedServicesUrl = "https://azure.leadtools.com/api/"; public void Run() { HttpClient client = InitClient(); string id = Guid.Empty.ToString(); Query(id, client); } private async Task Query(string id, HttpClient client) { string queryUrl = string.Format("Query?id={0}", id.ToString()); var result = await client.PostAsync(queryUrl, null); var returnedContent = await result.Content.ReadAsStringAsync(); var returnedData = JObject.Parse(returnedContent); if ((int)returnedData.SelectToken("FileStatus") == 100 || (int)returnedData.SelectToken("FileStatus") == 123) { //The file is still being processed -- we will sleep the current thread for 5 seconds before trying again. await Task.Delay(5000); await Query(id, client); } Console.WriteLine("File has finished processing with return code: " + returnedData.SelectToken("FileStatus")); if ((int)returnedData.SelectToken("FileStatus") != 200) return; Console.WriteLine("Returned Content: " + returnedData.SelectToken("RequestData")); } private HttpClient InitClient() { string AppId = "Enter Application ID"; string Password = "Enter Application Password"; HttpClient client = new HttpClient(); client.BaseAddress = new Uri(hostedServicesUrl); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); string authData = string.Format("{0}:{1}", AppId, Password); string authHeaderValue = Convert.ToBase64String(Encoding.UTF8.GetBytes(authData)); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", authHeaderValue); return client; } } }
#这个示例使用python库的请求。进口的请求,系统,时间servicesUrl = ' https://azure.leadtools.com/api/ ' requestID = ' 00000000-0000-0000-0000-000000000000 ';#应用程序ID. appId =“输入应用程序ID”;#应用程序密码。密码= "输入应用程序密码”;baseQueryUrl = '{}查询?id={}' formattedQueryUrl = baseQueryUrl.format(servicesUrl, requestID) while True : #Poll the services to determine if the request has finished processing request = requests.post(formattedQueryUrl, auth=(appId, password)) returnedData = request.json(); if returnedData['FileStatus'] != 100 and returnedData['FileStatus'] != 123: break time.sleep(5) print("File finished processing with file status: " + str(returnedData['FileStatus']) + "\n")
< ?php servicesBaseUrl美元= " https://azure.leadtools.com/api/ ";美元requestID = ' 00000000-0000-0000-0000-000000000000 ';$ queryUrl =“% sQuery ? id = % s”;$ queryUrl = sprintf ($ queryUrl servicesBaseUrl美元requestID美元);(requestOptions = GeneratePostOptions美元queryUrl);而(真正的){/ /轮询服务来确定请求已经完成处理。$请求= curl_init ();curl_setopt_array(请求,queryRequestOptions美元);/ /设置请求URL,如果(!$results = curl_exec($request)){ echo "There was an error querying the services \n\r"; echo $results; curl_close($request); exit; } curl_close($request); $decodedResponse = json_decode($results); $fileStatus= $decodedResponse -> {'FileStatus'}; if($fileStatus != 100 && $fileStatus != 123){ //The file has finished processing break; } sleep(5); //If the file hasn't finished processing, we will wait 5 seconds before checking again. } echo "File finished processing with file status: " . $fileStatus . "\n\r"; function GeneratePostOptions($url) { $appId = "Enter Application ID"; $password = "Enter Application Password"; $headers = array( "Content-Length : 0" ); $postOptions = array( CURLOPT_POST => 1, CURLOPT_URL => $url, CURLOPT_FRESH_CONNECT => 1, CURLOPT_RETURNTRANSFER => 1, CURLOPT_USERPWD => "$appId:$password", CURLOPT_FORBID_REUSE => 1, CURLOPT_HTTPHEADER => $headers ); return $postOptions; } ?>
使用基本的HTTP:消息;使用LWP:: UserAgent ();我的美元servicesUrl = " https://azure.leadtools.com/api/ ";我的美元requestID = ' 00000000-0000-0000-0000-000000000000 ';我的美元appId =“输入应用程序ID”;我的密码美元=“输入应用程序密码”;我$ header = HTTP: header - >新(Content_Length = > 0);$头- > authorization_basic (appId美元,美元密码);#发出请求时使用的用户代理我$ ua = LWP:: UserAgent - >新;我的queryUrl = servicesUrl美元。 'Query?id=' . $requestID; while(true){ $request = HTTP::Request->new(POST => $queryUrl, $headers); $response = $ua->request($request); $returnedData = parse_json($response->decoded_content); if($returnedData->{'FileStatus'} != 100 and $returnedData->{'FileStatus'} != 123){ last; } sleep(5); } print("File finished processing with file status: " . $returnedData->{'FileStatus'} . "\n");