百度云—使用机器人视觉SDK调用百度API方法教程
发布时间:2019-11-15 17:04:33 所属栏目:运营 来源:站长网
导读:副标题#e# 本文将分为两部分:机器人视觉应用的建立和如何使用机器人视觉SDK调用百度API两方面为您一一介绍。 一、机器人视觉应用的建立 使用百度AI平台的在线API之前,首先需要在百度云控制台中建立机器人视觉的应用。 步骤一: 请先前往百度AI开放平台下
Python: import urllib, urllib2, sys import ssl # client_id 为官网获取的AK, client_secret 为官网获取的SK host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【官网获取的AK】&client_secret=【官网获取的SK】' request = urllib2.Request(host) request.add_header('Content-Type', 'application/json; charset=UTF-8') response = urllib2.urlopen(request) content = response.read() if (content): print(content) C++: #include <iostream> #include <curl/curl.h> #include <json/json.h> #include "access_token.h" // libcurl库下载链接:https://curl.haxx.se/download.html // jsoncpp库下载链接:https://github.com/open-source-parsers/jsoncpp/ // 获取access_token所需要的url const std::string access_token_url = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials"; // 回调函数获取到的access_token存放变量 // static std::string access_token_result; /** * curl发送http请求调用的回调函数,回调函数中对返回的json格式的body进行了解析,解析结果储存在result中 * @param 参数定义见libcurl库文档 * @return 返回值定义见libcurl库文档 */ static size_t callback(void *ptr, size_t size, size_t nmemb, void *stream) { // 获取到的body存放在ptr中,先将其转换为string格式 std::string s((char *) ptr, size * nmemb); // 开始获取json中的access token项目 Json::Reader reader; Json::Value root; // 使用boost库解析json reader.parse(s,root); std::string* access_token_result = static_cast<std::string*>(stream); *access_token_result = root["access_token"].asString(); return size * nmemb; } /** * 用以获取access_token的函数,使用时需要先在百度云控制台申请相应功能的应用,获得对应的API Key和Secret Key * @param access_token 获取得到的access token,调用函数时需传入该参数 * @param AK 应用的API key * @param SK 应用的Secret key * @return 返回0代表获取access token成功,其他返回值代表获取失败 */ int get_access_token(std::string &access_token, const std::string &AK, const std::string &SK) { CURL *curl; CURLcode result_code; int error_code = 0; curl = curl_easy_init(); if (curl) { std::string url = access_token_url + "&client_id=" + AK + "&client_secret=" + SK; curl_easy_setopt(curl, CURLOPT_URL, url.data()); curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0); curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0); std::string access_token_result; curl_easy_setopt(curl, CURLOPT_WRITEDATA, &access_token_result); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, callback); result_code = curl_easy_perform(curl); if (result_code != CURLE_OK) { fprintf(stderr, "curl_easy_perform() failed: %sn", curl_easy_strerror(result_code)); return 1; } access_token = access_token_result; curl_easy_cleanup(curl); error_code = 0; } else { fprintf(stderr, "curl_easy_init() failed."); error_code = 1; } return error_code; } C#: using System; using System.Collections.Generic; using System.Net.Http; namespace com.baidu.ai { public static class AccessToken { // 调用getAccessToken()获取的 access_token建议根据expires_in 时间 设置缓存 // 返回token示例 public static String TOKEN = "24.adda70c11b9786206253ddb70affdc46.2592000.1493524354.282335-1234567"; // 百度云中开通对应服务应用的 API Key 建议开通应用的时候多选服务 private static String clientId = "百度云应用的AK"; // 百度云中开通对应服务应用的 Secret Key private static String clientSecret = "百度云应用的SK"; public static String getAccessToken() { String authHost = "https://aip.baidubce.com/oauth/2.0/token"; HttpClient client = new HttpClient(); List<KeyValuePair<String, String>> paraList = new List<KeyValuePair<string, string>>(); paraList.Add(new KeyValuePair<string, string>("grant_type", "client_credentials")); paraList.Add(new KeyValuePair<string, string>("client_id", clientId)); paraList.Add(new KeyValuePair<string, string>("client_secret", clientSecret)); HttpResponseMessage response = client.PostAsync(authHost, new FormUrlEncodedContent(paraList)).Result; String result = response.Content.ReadAsStringAsync().Result; Console.WriteLine(result); return result; } } } (编辑:广西网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐