翔云车架号VIN查询服务

● 自动定位图片中车架号区域并识别号码

● 返回车架号包含的厂商、车系、车型、发动机类型、排量等信息

购买 API

产品体验

剩余条数:0

* 请输入VIN号,或点击 上传图片OCR输入

*

开始核验...

API文档

接口说明
接口地址: https://netocr.com/verapi/v2/verVin.do
接口调用方法: post
接口接收参数:
序号 名称 类型 必填 说明
1 key String 用户ocrKey
2 secret String 用户ocrSecrert
3 vin String vin码
4 typeId Integer 车架号VIN查询:3008
5 format String 返回格式(xml或者json),如果format为空,则默认返回xml
状态码说明:
status code msg
0 成功
202 vin不正确
210 没有信息
104 请求超过次数限制
105 IP被禁止
106 IP请求超过限制
107 接口维护中
108 接口已停用
接口返回值参数说明:
序号 名称 类型 说明
1 manufacturer String 厂家名称
2 brand String 品牌
3 name String 名称
4 yeartype String 年款
5 environmentalstandards String 排放标准
6 comfuelconsumption String 油耗
7 engine String 发动机
8 gearbox String 变速箱
9 drivemode String 驱动方式
10 carbody String 车身形式
11 fronttiresize String 前轮胎尺寸
12 reartiresize String 后轮胎尺寸
13 vin String 车架号
14 fueltype String 燃油类型
15 displacement String 排量 L
16 fuelgrade String 燃油标号
17 price String 厂商指导价
18 frontbraketype String 前制动类型
19 rearbraketype String 后制动类型
20 parkingbraketype String 驻车制动类型
21 maxpower String 最大功率 KW
21 sizetype String 尺寸类型
22 gearnum String 档位数
23 geartype String 变速箱类型
24 seatnum String 座位数
25 bodystructure String 车体结构
26 maxhorsepower String 最大马力(Ps)
27 carlist String 车型列表 可能的车型
28 carid String 车ID
29 typeid String 车型ID
30 listdate String 上市日期
31 len String 长 mm
32 width String
33 height String
34 wheelbase String 轴距
35 weight String 整备质量 kg
36 bodytype String 车身型式
37 typename String 车型名称
38 iscorrect String 1 VIN符合规则 0 VIN不符合规则
39 displacementml String 排量(mL)
40 caridexternal String 外部ID
41 machineoil String 机油信息
42 volume String 参考用量
43 viscosity String 粘稠度
44 grade String 机油分类
45 level String 质量等级
46 ratedloadweight String 额定载质量
47 marketprice String 市场价
48 version String 版本
49 isimport String 是否是进口 0国产 1进口
50 groupid String 车型组ID
51 groupname String 车型组名称
52 model String 工信部型号
53 doornum String 车门数
54 gearboxinfo String 变速箱信息
55 gearboxmodel String 变速箱型号
56 gearboxbrand String 变速箱品牌
57 joint String 接口型号
58 gravityoil String 重力加油量
59 mechanicaloil String 机械加油量
60 jointpiclist String 接口图片列表
61 positionpiclist String 位置图片列表
62 checkfillpiclist String 量油/加注/放油口图片列表
63 fuelmethod String 供油方式
64 cylindernum String 气缸数(个)
65 enginemodel String 发动机型号(参考)
三、示例代码
  • Java
  • python
  • javascript
  • PHP
  • C#
  • C++
  • GO
  • Node.js
  • ios
  • Android

package com.test;

import okhttp3.*;
import org.json.JSONObject;
import java.io.*;
/**
 * 需要添加依赖
 * 
 * 
 *     com.squareup.okhttp3
 *     okhttp
 *     4.12.0
 * 
 */
class Sample {

	static final OkHttpClient HTTP_CLIENT = new OkHttpClient().newBuilder().build();

	public static void main(String []args) throws IOException{
		MediaType mediaType = MediaType.parse("text/plain");
		RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)
		  .addFormDataPart("vin","********")
		  .addFormDataPart("key","M***********g")
		  .addFormDataPart("secret","3***********6")
		  .addFormDataPart("typeId","3008")
		  .addFormDataPart("format","json")
		  .build();
		Request request = new Request.Builder()
		  .url("https://netocr.com/verapi/v2/verVin.do")
		  .method("POST", body)
		  .build();
		Response response = HTTP_CLIENT.newCall(request).execute();
		System.out.println(response.body().string());
	}
}

import requests
import json

def main():

    url = "https://netocr.com/verapi/v2/verVin.do"

    payload = {
    'key': 'M***********g',
    'secret': '3***********6',
	'vin': '********',
    'typeId': '3008',
    'format': 'json'
	}
    files=[

    ]
	headers = {}

    response = requests.request("POST", url, headers=headers, data=payload, files=files)

    print(response.text)

	if __name__ == '__main__':
	    main()

var form = new FormData();

form.append("key", "M***********g");
form.append("secret", "3***********6");
form.append("vin", "********");
form.append("typeId", "3008");
form.append("format", "json");

var settings = {
 "url": "https://netocr.com/verapi/v2/verVin.do",
 "method": "POST",
 "timeout": 0,
 "processData": false,
 "mimeType": "multipart/form-data",
 "contentType": false,
 "data": form
};

$.ajax(settings).done(function (response) {
 console.log(response);
});

<?php
class Sample {

	public function run() {
		$curl = curl_init();
		curl_setopt_array($curl, array(

			CURLOPT_URL => 'https://netocr.com/verapi/v2/verVin.do',
			CURLOPT_RETURNTRANSFER => true,
			CURLOPT_ENCODING => '',
			CURLOPT_MAXREDIRS => 10,
			CURLOPT_TIMEOUT => 0,
			CURLOPT_FOLLOWLOCATION => true,
			CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
			CURLOPT_CUSTOMREQUEST => 'POST',
			CURLOPT_POSTFIELDS => array('key' => 'M***********g','secret' => '3***********6','vin' => '/9j','typeId' => '3008','format' => 'json'),

		));
		$response = curl_exec($curl);
        curl_close($curl);
        echo $response;
	}
}
$rtn = (new Sample())->run();
print_r($rtn);

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://netocr.com/verapi/v2/verVin.do");
var content = new MultipartFormDataContent();

content.Add(new StringContent("M***********g"), "key");
content.Add(new StringContent("3***********6"), "secret");
content.Add(new StringContent("3008"), "typeId");
content.Add(new StringContent("******"), "voin");
content.Add(new StringContent("json"), "format");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());

#include 
#include 
#include 

int main() {
    // 创建 HTTP 客户端
    web::http::client::http_client client(U("https://netocr.com/verapi/v2/verVin.do"));

    // 构建请求内容
    web::http::multipart_content content;

    content.add(web::http::name(U("key")), web::http::value(U("M***********g")));
    content.add(web::http::name(U("secret")), web::http::value(U("3***********6")));
	content.add(web::http::name(U("vin")), web::http::value(U("*******")));
    content.add(web::http::name(U("typeId")), web::http::value(U("3008")));
    content.add(web::http::name(U("format")), web::http::value(U("json")));

    // 创建 HTTP 请求
    web::http::http_request request(web::http::methods::POST);
    request.headers().set_content_type(U("multipart/form-data; boundary=") + content.boundary());
    request.set_body(content);

    // 发送请求并获取响应
    web::http::http_response response = client.request(request).get();

    // 确保请求成功
    if (response.status_code() == web::http::status_codes::OK) {
        // 读取响应内容
        std::wstring responseString = response.extract_string().get();
        std::wcout << "Response: " << responseString << std::endl;
    } else {
        std::cerr << "Request failed with status code " << response.status_code() << std::endl;
    }
    return 0;
}

package main

import (
  "fmt"
  "bytes"
  "mime/multipart"
  "net/http"
  "io/ioutil"
)

func main() {
    url := "https://netocr.com/verapi/v2/verVin.do"
    method := "POST"

    payload := &bytes.Buffer{}
    writer := multipart.NewWriter(payload)
    _ = writer.WriteField("vin", "******")
    _ = writer.WriteField("key", "M***********g")
    _ = writer.WriteField("secret", "3***********6")
    _ = writer.WriteField("typeId", "3008")
    _ = writer.WriteField("format", "json")
    err := writer.Close()
    if err != nil {
     fmt.Println(err)
     return
    }

    client := &http.Client { }
    req, err := http.NewRequest(method, url, payload)

    if err != nil {
     fmt.Println(err)
     return
    }
    req.Header.Set("Content-Type", writer.FormDataContentType())
    res, err := client.Do(req)
    if err != nil {
     fmt.Println(err)
     return
    }
    defer res.Body.Close()

    body, err := ioutil.ReadAll(res.Body)
    if err != nil {
     fmt.Println(err)
     return
    }
    fmt.Println(string(body))
}

var request = require('request');
var options = {
   'method': 'POST',
   'url': 'https://netocr.com/verapi/v2/verVin.do',
   'headers': {
   },
   formData: {
     'vin': '*******',
     'key': 'M***********g',
     'secret': '3***********6',
     'typeId': '3008',
     'format': 'json'
   }
};
request(options, function (error, response) {
   if (error) throw new Error(error);
   console.log(response.body);
});

import Alamofire

class Sample {

    func performNetworkRequest() {
        let parameters: [String: Any] = [
            "vin": "**********",
            "key": "M***********g",
            "secret": "3***********6",
            "typeId": "3008",
            "format": "json"
        ]

        AF.request("https://netocr.com/verapi/v2/verVin.do", method: .post, parameters: parameters)
            .response { response in
                switch response.result {
                case .success(let responseData):
                    if let data = responseData {
                        let responseString = String(data: data, encoding: .utf8)
                        print("Response: \(responseString ?? "")")
                    }
                case .failure(let error):
                    print("Error: \(error.localizedDescription)")
                }
            }
    }
}
let sample = Sample()
sample.performNetworkRequest()
	

import android.util.Log;
import okhttp3.*;
import java.io.IOException;

public class Sample {

    private static final OkHttpClient HTTP_CLIENT = new OkHttpClient.Builder().build();

    public static void performNetworkRequest() {
        MediaType mediaType = MediaType.parse("text/plain");
        RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)
                .addFormDataPart("vin", "*********")
                .addFormDataPart("key", "M***********g")
                .addFormDataPart("secret", "3***********6")
                .addFormDataPart("typeId", "3008")
                .addFormDataPart("format", "json")
                .build();
        Request request = new Request.Builder()
                .url("https://netocr.com/verapi/v2/verVin.do")
                .method("POST", body)
                .build();

        HTTP_CLIENT.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                Log.e("Sample", "Error: " + e.getMessage());
                // 处理请求失败情况
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                if (response.isSuccessful()) {
                    String responseData = response.body().string();
                    // 在这里处理响应结果
                    Log.d("Sample", "Response: " + responseData);
                } else {
                    Log.e("Sample", "Response code: " + response.code());
                    // 处理响应失败情况
                }
            }
        });
    }
}
	
查看详细API介绍

交易记录

请登录后体验

确定 取消