首先下载Postman工具抓包工具httpAnalyerstdV7
httpAnalyerstdV7,打开后,只要有东西触发上传就能抓到数据,比如刚刚我点击postman的send.它就抓到post的信息。
上传文件功能:
需要拿到对方的服务器地址URL(这一步需要对方给,自己通过网页
对方的Headers和body需要的数据
右侧的code snippt
其中content-type是必须的,还有boundary分割线,主要是为了分割body里面的内容。其中name ="file",file是对方服务器命名的,可以随便起名字,但是,写代码的时候要对应对方的名字。
curl上传方式
UTF8 taskId;
{
UTF8 reponse;
CURL* curl;
CURLcode res;
curl = curl_easy_init();
if (curl) {
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_URL, "http://data.sc-bj.yjk.cn/api/cgi/computeresource/upload");
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "http");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, http_data_writer);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void*)&reponse); // set var to receive return info from callback functio
struct curl_slist* headers = NULL;
UTF8 tokenHead = "access-token: " + token;
headers = curl_slist_append(headers, tokenHead.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_mime* mime;
curl_mimepart* part;
mime = curl_mime_init(curl);
part = curl_mime_addpart(mime);
curl_mime_name(part, "file");
curl_mime_filedata(part, sFilePath.c_str());
curl_easy_setopt(curl, CURLOPT_MIMEPOST, mime);
res = curl_easy_perform(curl);
curl_mime_free(mime);
}
curl_easy_cleanup(curl);
Json::Value jsonData;
JSONCPP_STRING errs;
bool re = reader->parse(reponse.c_str(), reponse.c_str() + reponse.length(), &jsonData, &errs);
if (re) {
int code = jsonData["code"].asInt();
if (code != 0) {
std::string errorMessage = jsonData["message"].asString();
return false;
}
else {
taskId = jsonData["data"]["task_id"].asString();
}
}
else {
return false;
}
}