相似图片搜索返回error_216101
FlyOnTheSky6 发布于2018-10-11 浏览:1812 回复:3
0
收藏
最后编辑于2021-08-17
"error_code": 216101, "error_msg": "param image not exist"
我也知道是image位置不正确 可是这个参数应该是怎样的呢,请大佬指点下,谢谢!代码有没有什么问题?

float get_similar_search(std::string &json_result, std::string &access_token)
{
	std::string strJsonData = "{\"image\":\"iVBORw0KGgoAAA\",\"tags\":\"100,11\",\"tag_logic\":\"0\",\"pn\":\"0\",\"rn\":\"300\"}";
	CURL *curl;
	CURLcode result_code;
	int is_success;
	curl = curl_easy_init();
	struct curl_slist *pheaders = NULL;
	struct curl_slist *pbody = NULL;
	
	pheaders = curl_slist_append(pheaders, "content-type: application/json;charset=UTF-8");
	pbody = curl_slist_append(pbody, strJsonData.c_str());
	char szData[1024] = { 0 };
	if (curl) 
	{
//拼接获取到token后的postUrl
		sprintf_common(szData, sizeof(szData), strResultPostUrl.c_str(), access_token.c_str());
		curl_easy_setopt(curl, CURLOPT_HTTPHEADER, pheaders);
		curl_easy_setopt(curl, CURLOPT_HTTPHEADER, pbody);
		curl_easy_setopt(curl, CURLOPT_URL, szData);//指定的带token的url
		curl_easy_setopt(curl, CURLOPT_HTTPPOST, 1L);
		curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);//设置为FALSE 禁止 cURL 验证对等证书
		curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);// 设置为 1 是检查服务器SSL证书中是否存在一个公用名
		curl_easy_setopt(curl, CURLOPT_POSTFIELDS, strJsonData);
		curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, similar_search_callback);
		result_code = curl_easy_perform(curl);
		if (result_code != CURLE_OK) {
			fprintf(stderr, "curl_easy_perform() failed: %s\n",
				curl_easy_strerror(result_code));
			is_success = 1;
			return is_success;
		}

		json_result = detect_result;//此处可以得到返回数据
		curl_easy_cleanup(curl);
		is_success = 0;
	}
	else {
		fprintf(stderr, "curl_easy_init() failed.");
		is_success = 1;
	}
	return is_success;
}
收藏
点赞
0
个赞
共3条回复 最后由756665228回复于2018-10-22
#3756665228回复于2018-10-22

相似相同接口是KV形式拼接参数。不是JSON格式拼接哦。

 例如 image=urlencode(base64)&aa=111

1
#2melissayoung回复于2018-10-15

您好,可以参考其他开发者贡献的示例代码,比如:http://ai.baidu.com/forum/topic/show/496555

或者加入开发者QQ群(630770006)交流问题,多谢。

0
TOP
切换版块