Примером этого исключаемого исключения является: Когда вы пытаетесь проверить что-то, это null.
Например:
string testString = null; //Because it doesn't have a value (i.e. it's null; "Length" cannot do what it needs to do)
if (testString.Length == 0) // Throws a nullreferenceexception
{
//Do something
}
Время выполнения .NET исключение NullReferenceException при попытке выполнить действие над чем-то, что не было инстанцировано, т.е. код выше.
По сравнению с ArgumentNullException, которое обычно выбрано как защитная мера, если метод ожидает, что то, что происходит
Дополнительная информация находится в C # NullReferenceException и Null Parameter .
Установите параметры CURLOPT_WRITEFUNCTION
и / или CURLOPT_WRITEDATA
:
FILE *f = fopen("target.txt", "wb");
curl_easy_setopt(handle, CURLOPT_WRITEDATA, f);
По умолчанию libcurl записывает вывод в stdout
. Когда вы переопределяете это (это то, что почти любое приложение будет делать), он будет записывать в другой файл или передавать куски вывода на обратный вызов. Подробнее см. Документацию для CURLOPT_WRITEFUNCTION
.
Как Joey сказал , CURLOPT_WRITEFUNCTION
позволит вам полностью игнорировать весь вывод. Просто настройте обратный вызов, который абсолютно ничего не делает, если вы хотите, чтобы данные просто уходили, не записываясь ни в какой дескриптор файла.
Например,
/* 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;
}
Затем в вашем options:
curl_easy_setopt(handle, CURLOPT_WRITEFUNCTION, &my_dummy_write);
Или, укажите дескриптор файла на NULL-устройстве (намного проще).
Использовать CURLOPT_NOBODY в curl_easy_setopt (). Пример:
...
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);
...
Ссылка на документы: http://curl.haxx.se/libcurl/c/curl_easy_setopt.html#CURLOPTNOBODY