static void clientIoGet(const char* dntoken) { const char text[] = "Hello, world!"; char* url = Qiniu_String_Concat("http://", domain, "/", key, "?token=", dntoken, NULL); long code, httpCode; CURL* curl = curl_easy_init(); Qiniu_Buffer resp; Qiniu_Buffer respHeader; Qiniu_Buffer_Init(&resp, 1024); Qiniu_Buffer_Init(&respHeader, 1024); printf("url: %s\n", url); curl_easy_setopt(curl, CURLOPT_URL, url); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, Qiniu_Buffer_Fwrite); curl_easy_setopt(curl, CURLOPT_WRITEDATA, &resp); curl_easy_setopt(curl, CURLOPT_HEADERFUNCTION, Qiniu_Buffer_Fwrite); curl_easy_setopt(curl, CURLOPT_HEADERDATA, &respHeader); code = curl_easy_perform(curl); printf("\n%s", Qiniu_Buffer_CStr(&respHeader)); CU_ASSERT(code == 0); curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &httpCode); CU_ASSERT(httpCode == 200); CU_ASSERT_STRING_EQUAL(Qiniu_Buffer_CStr(&resp), text); curl_easy_cleanup(curl); }
static void clientIoPutBuffer(const char* uptoken) { Qiniu_Error err; Qiniu_Client client; Qiniu_Rio_PutExtra extra; Qiniu_Rio_PutRet putRet; Qiniu_Seq seq; Qiniu_ReaderAt in; Qiniu_Int64 fsize = testFsize; Qiniu_Client_InitNoAuth(&client, 1024); Qiniu_Zero(extra); extra.bucket = bucket; extra.notify = notify; extra.notifyErr = notifyErr; extra.chunkSize = 1024; in = Qiniu_SeqReaderAt(&seq, fsize, 10, '0', 0); err = Qiniu_Rio_Put(&client, &putRet, uptoken, key, in, fsize, &extra); printf("\n%s", Qiniu_Buffer_CStr(&client.respHeader)); printf("hash: %s\n", putRet.hash); CU_ASSERT(err.code == 200); CU_ASSERT_STRING_EQUAL(putRet.hash, "FoErrxvY99fW7npWmVii0RncWKme"); Qiniu_Client_Cleanup(&client); }
static void clientIoGet(const char* url) { Qiniu_Eq eq; Qiniu_Seq seq; Qiniu_Int64 fsize = testFsize; Qiniu_Reader in = Qiniu_SeqReader(&seq, (size_t)fsize, 10, '0', 0); Qiniu_Writer w = Qiniu_EqWriter(&eq, in); long code, httpCode; CURL* curl = curl_easy_init(); Qiniu_Buffer respHeader; Qiniu_Buffer_Init(&respHeader, 1024); printf("url: %s\n", url); curl_easy_setopt(curl, CURLOPT_URL, url); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, w.Write); curl_easy_setopt(curl, CURLOPT_WRITEDATA, w.self); curl_easy_setopt(curl, CURLOPT_HEADERFUNCTION, Qiniu_Buffer_Fwrite); curl_easy_setopt(curl, CURLOPT_HEADERDATA, &respHeader); code = curl_easy_perform(curl); printf("\n%s", Qiniu_Buffer_CStr(&respHeader)); printf("\ncurl.code: %d, eq.result: %d\n", (int)code, eq.result); CU_ASSERT(code == 0); curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &httpCode); CU_ASSERT(httpCode == 200); CU_ASSERT(Qiniu_Is(&eq)); curl_easy_cleanup(curl); }
Qiniu_Error Qiniu_callex(CURL* curl, Qiniu_Buffer *resp, Qiniu_Json** ret, Qiniu_Bool simpleError, Qiniu_Buffer *resph) { Qiniu_Error err; CURLcode curlCode; long httpCode; Qiniu_Json* root; curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, Qiniu_Buffer_Fwrite); curl_easy_setopt(curl, CURLOPT_WRITEDATA, resp); if (resph != NULL) { curl_easy_setopt(curl, CURLOPT_HEADERFUNCTION, Qiniu_Buffer_Fwrite); curl_easy_setopt(curl, CURLOPT_WRITEHEADER, resph); } curlCode = curl_easy_perform(curl); if (curlCode == 0) { curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &httpCode); if (Qiniu_Buffer_Len(resp) != 0) { root = cJSON_Parse(Qiniu_Buffer_CStr(resp)); } else { root = NULL; } *ret = root; err.code = (int)httpCode; if (httpCode / 100 != 2) { if (simpleError) { err.message = g_statusCodeError; } else { err.message = Qiniu_Json_GetString(root, "error", g_statusCodeError); } } else { err.message = "OK"; } } else { *ret = NULL; err.code = curlCode; err.message = "curl_easy_perform error"; } printf("code %d\n", err.code); return err; }
static void clientIoPutFile(const char* uptoken) { Qiniu_Error err; Qiniu_Client client; Qiniu_Io_PutExtra extra; Qiniu_Io_PutRet putRet; Qiniu_Client_InitNoAuth(&client, 1024); Qiniu_Zero(extra); extra.bucket = bucket; err = Qiniu_Io_PutFile(&client, &putRet, uptoken, key, __FILE__, &extra); CU_ASSERT(err.code == 200); printf("\n%s\n", Qiniu_Buffer_CStr(&client.respHeader)); printf("hash: %s\n", putRet.hash); Qiniu_Client_Cleanup(&client); }
static void clientIoPutBuffer(const char* uptoken) { const char text[] = "Hello, world!"; Qiniu_Error err; Qiniu_Client client; Qiniu_Io_PutExtra extra; Qiniu_Io_PutRet putRet; Qiniu_Client_InitNoAuth(&client, 1024); Qiniu_Zero(extra); extra.bucket = bucket; err = Qiniu_Io_PutBuffer(&client, &putRet, uptoken, key, text, sizeof(text)-1, &extra); printf("\n%s", Qiniu_Buffer_CStr(&client.respHeader)); printf("hash: %s\n", putRet.hash); CU_ASSERT(err.code == 200); CU_ASSERT_STRING_EQUAL(putRet.hash, "FpQ6cC0G80WZruH42o759ylgMdaZ"); Qiniu_Client_Cleanup(&client); }
void debug_log(Qiniu_Client *client, Qiniu_Error err) { printf("\nerror code: %d, message: %s\n", err.code, err.message); printf("response header:\n%s", Qiniu_Buffer_CStr(&client->respHeader)); printf("response body:\n%s", Qiniu_Buffer_CStr(&client->b)); printf("\n\n\n"); }