Làm cách nào để ẩn đầu ra curl_easy_perform (trong trình bao)?
Điều này liên quan đến một ứng dụng C.ẩn curl_easy_perform
Trả lời
Đặt CURLOPT_WRITEFUNCTION
và/hoặc CURLOPT_WRITEDATA
lựa chọn:
FILE *f = fopen("target.txt", "wb");
curl_easy_setopt(handle, CURLOPT_WRITEDATA, f);
Theo mặc định, libcurl viết ra để stdout
. Khi bạn ghi đè lên điều này (đó là những gì hầu như bất kỳ ứng dụng sẽ làm), nó sẽ ghi vào một tập tin khác hoặc để vượt qua khối đầu ra để gọi lại. Xem tài liệu cho CURLOPT_WRITEFUNCTION
để biết thêm chi tiết.
Vì Joey said, CURLOPT_WRITEFUNCTION
sẽ cho phép bạn hoàn toàn bỏ qua tất cả đầu ra. Chỉ cần thiết lập một cuộc gọi lại hoàn toàn không có gì nếu bạn muốn dữ liệu chỉ biến mất mà không được ghi vào bất kỳ bộ mô tả tệp nào.
Ví dụ,
/* Never writes anything, just returns the size presented */
size_t my_dummy_write(char *ptr, size_t size, size_t nmemb, void *userdata)
{
return size * nmemb;
}
Sau đó, trong lựa chọn của bạn: (dễ dàng hơn rất nhiều)
curl_easy_setopt(handle, CURLOPT_WRITEFUNCTION, &my_dummy_write);
Hoặc, quan điểm xử lý tập tin tại một thiết bị NULL.
Sử dụng CURLOPT_NOBODY trong curl_easy_setopt(). Ví dụ:
...
CURL *curl;
CURLcode statusCode;
curl = curl_easy_init();
if(curl){
curl_easy_setopt(curl, CURLOPT_URL, "http://www.google.com/");
//CURLOPT_NOBODY does the trick
curl_easy_setopt(curl, CURLOPT_NOBODY, 1);
curl_easy_perform(curl);
...
Liên kết đến tài liệu: http://curl.haxx.se/libcurl/c/curl_easy_setopt.html#CURLOPTNOBODY
Tôi muốn đăng nhập vào trang https: // user: [email protected]/login/ và sau đó sử dụng curl để POST tới https://www.example.com/upload/ nhưng với CURLOPT_NOBODY tôi mất phiên -ID. Tôi giải quyết điều này bằng cách viết thư cho nul –
Tôi có quyền giả sử điều này hữu ích cho các yêu cầu POST không, nhưng có lẽ không phải như vậy đối với GET? – xtofl
cho các yêu cầu POST, điều này chỉ đơn giản là không gửi cơ thể, có nghĩa là nó không phải là những gì bạn mong đợi. – xtofl
những gì bạn có nghĩa là che giấu? – hhafez
Curl_easy_perform in nội dung trang được trả về theo yêu cầu (yêu cầu đăng trong trường hợp của tôi). Tôi muốn "ẩn" nội dung trang đó (không có chế độ xem) và in thư cá nhân của tôi – stdio