Tag: curl

从服务器下载图像(cUrl,但需要提出建议)C ++

我试图通过从服务器(网站)下载图像来设置旋转背景图像,并尝试使用curl执行此操作,但是这样做有0次成功。 我的代码的(缩短版)如下。 我没有收到错误,但是,如何“暂时”保存此图像以将其显示为我的背景? 有图像(-type变量)还是什么? 这只是一次学习经历,因此非常感谢任何图书馆或建议。 #include CURL *curlCtx = curl_easy_init(); curl_easy_setopt(curlCtx, CURLOPT_URL, “http://www.examplesite.com/testimage.jpeg”); curl_easy_setopt(curlCtx, CURLOPT_WRITEDATA, this); curl_easy_setopt(curlCtx, CURLOPT_WRITEFUNCTION, callbackfunction); const CURLcode rc = curl_easy_perform(curlCtx); if(rc == CURLE_OK){ //it worked } size_t callbackfunction(char *data, size_t size, size_t nmemb, void *stream){ //do something here with image…? } 谢谢,詹姆斯 编辑:对不起我错误地添加了()回调函数。

使用fifo以非阻塞模式打开并选择

我有两个进程A和B.通信流总是A – > B,但我需要使用命名管道来做,因为我必须在B进程内的select调用中使用管道文件描述符,并写入数据当任何或两个进程退出时,管道必须保持不变。 管道两端以非阻塞模式打开。 在过程A: int push_fifo_fd = open(FIFO_NAME, O_WRONLY | O_NONBLOCK | O_CREAT, 0644); 在流程B中: int fd = open(FIFO_NAME, O_RDONLY | O_NONBLOCK | O_CREAT, 0644); Q1。 进程B使用curl多接口,因此我得到curl多句柄的fd_sets并将“fd”描述符添加到读取fd_set,而不是调用select,以获取可用于读取和写入的文件描述符。 在每次调用select中,“fd”包含在结果读取fd_set中,但read返回0,即使写入结束也是如此。 这导致进程B使用100%的处理器时间。 我提到我不知道订购哪个管子的末端是打开的。 B的相关代码: while (1) { fd_set read_fds, write_fds, err_fds; FD_ZERO(&read_fds); FD_ZERO(&write_fds); FD_ZERO(&err_fds); FD_SET(fifo_fd, &read_fds); // some code ccode = curl_multi_fdset(curlm, &read_fds, &write_fds, &err_fds, &max_fd); […]

S_ISREG宏未定义

问题 是posix宏S_ISREG,S_ISDIR等linux吗? 我需要找出因为我正在尝试编译CURL并且它试图在Windows上使用它们 我可以使用哪些包含文件在Windows上访问它们。 这是违法的代码 /*we ignore file size for char/block devices, sockets etc*/ if(S_ISREG(fileinfo.st_mode)) uploadfilesize= fileinfo.st_size; } 它会导致错误 error LNK2019: unresolved external symbol _S_ISREG referenced in function _operate file tool_operate.obj 它们在以下问题中引用 如何使用S_ISREG()和S_ISDIR()POSIX宏? 在C和C ++中区分unix目录和文件 在C中读取目录的问题 显然S_ISREG()是一堆posix宏的一部分,显然应该告诉我们文件是否是“常规文件”,但我发现的所有示例都有linux特定的包含文件。

如何使用libcurl保存图像

我想将libcurl用于涉及从网页获取图像的项目。 URL如下所示: http://sofzh.miximages.com/c%2B%2B/image.jpg 使用命令行cURL我可以使用检索图像 $curl -o sampleimage.jpg http://sofzh.miximages.com/c%2B%2B/image.jpg 我想知道libcurl中这段代码的等价物,因为我现在已经疯了。 我在网上得到了这个示例源,它编译和填充,但我无法在任何地方看到图像文件。 这是代码: #include #include #include using namespace std; int main(){ CURL *image; CURLcode imgresult; FILE *fp; image = curl_easy_init(); if( image ){ // Open file fp = fopen(“google.jpg”, “wb”); if( fp == NULL ) cout << "File cannot be opened"; curl_easy_setopt(image, CURLOPT_URL, "http://sofzh.miximages.com/c%2B%2B/video.jpg"); curl_easy_setopt(image, CURLOPT_WRITEFUNCTION, NULL); […]

使用libcurl制作https

我正在尝试连接到谷歌API。 这在我的终端工作正常,我正在做: curl https://www.googleapis.com/tasks/v1/users/@me/lists –header “Authorization: Bearer myAccessCode” 。 这工作正常,但现在我想在内部交流程序。 为此,我有: CURL *curl; char *header = “Authorization: Bearer myAccessCode”; struct curl_slist *headers = NULL; headers = curl_slist_append(headers, header); curl = curl_easy_init(); char *response = NULL; curl_easy_setopt(curl, CURLOPT_URL, “https://www.googleapis.com/tasks/v1/users/@me/lists”); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); curl_easy_setopt(curl, CURLOPT_HTTPGET, 1); curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L); curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, […]

如何正确重用curl手柄

我想正确地重用一个curl句柄,这样它就不会给我错误和正常的function。 假设我有这段代码: CURL *curl; curl_global_init(CURL_GLOBAL_ALL); curl = curl_easy_init(); curl_easy_setopt(curl, CURLOPT_USERAGENT, “Mozilla/5.0…”); curl_easy_setopt(curl, CURLOPT_URL, “http://www.google.com”); curl_easy_perform(curl); curl_easy_setopt(curl, CURLOPT_URL, “http://www.bbc.com”); curl_easy_perform(curl); curl_easy_cleanup(curl); curl_global_cleanup(); 这是重用curl手柄的好方法吗? 或者我需要在该句柄上使用curl_easy_reset()吗? 我也很感激,如果有人建议你应该避免curl。 也许有人可以给我一个已经存在的信息来源的链接?

链接curl库问题

我正在尝试构建从ftp下载文件的curl库示例程序。 我正在使用Eclipse IDE,OS – Ubuntu 。 我使用命令安装了curl:apt-get install libcurl4-gnutls-dev 我在/usr/include/curl看到heades文件(我不知道c文件在哪里) 看起来Eclipse很满意with #include ,所有程序中使用的curl函数都使用’undefined reference’ 。 编译涉及链接错误: **** Build of configuration Debug for project updDown **** make all Building target: updDown Invoking: GCC C Linker gcc -o “updDown” ./src/updDown.o ./src/updDown.o: In function `main’: /home/g/proj/updDown/Debug/../src/updDown.c:45: undefined reference to `curl_global_init’ /home/g/proj/updDown/Debug/../src/updDown.c:47: undefined reference to `curl_easy_init’ /home/g/proj/updDown/Debug/../src/updDown.c:52: undefined reference […]

仍然得到’curl / curl.h:没有这样的文件或目录’尽管看起来很合适

我安装在windows curl 7.28.0从curl-7.28.1-devel-mingw32.zip通过minGW控制台到默认目录,如: ./config && make && make install 所有需要的标题(aka curl.h, types.h … )我在C:\MinGW\msys\1.0\local\include\curl看到 libcurl.pc放在C:\MinGW\msys\1.0\local\lib\pkgconfig\ libcurl.a , libcurl.dll.a和libcurl.la放在C:\MinGW\msys\1.0\local\lib 。 我的download_file.c文件包括: … #include #include #include … 我尝试通过gcc使用follow命令编译C代码: $ gcc -IC:/MinGW/msys/1.0/include/ -IC:/MinGW/msys/1.0/local/include/curl -IC:/MinGW/msys/1.0/local/lib/pkgconfig -o download_file download_file.c -llibcurl -lcurl 绝对路径获得相同的错误: gcc -I/include/ -I/local/include/curl -I/local/lib/pkgconfig -o download_file download_file.c -llibcurl -lcurl 但我仍然得到一个错误: download_file.c:21:23: fatal error: curl/curl.h: No such file or […]

Android NDK使用来自JNI内部c代码的.so库

我在SO上发现了类似的问题,但没有一个是相同的工作流程。 我的项目中有一个.so库(libcurl)。 该项目构建但我需要在JNI中的c代码中获取curl.h。 这是我的Android.mk文件: LOCAL_PATH:= $(call my-dir) LIBS_PATH := libs/$(TARGET_ARCH_ABI) include $(CLEAR_VARS) LOCAL_MODULE := libcurl LOCAL_SRC_FILES := $(LIBS_PATH)/libcurl.so include $(PREBUILT_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := testLib LOCAL_SRC_FILES := lib.c LOCAL_SHARED_LIBRARIES += libcurl include $(BUILD_SHARED_LIBRARY) 这是我的c类: #include “curl/curl.h” #include “lib.h” JNIEXPORT jint JNICALL Java_com_example_test_1libcurlandroidlib_Lib_getTestNumber (JNIEnv *env , jclass clazz) { return 99; } 问题在于“curl / curl.h”include命令。 我也试过,但它也找不到: […]

带有libsoup的HTTP POST

我想使用libsoup执行一个简单的POST请求。 我想发送数据的网站的api只需要一个名为’content’的字段。 curl我这样做: curl -si -F ‘content=mycontent’ http://mywebsite.org/api 我怎么能用libsoup做同样的事情?