求教大神...我搜索了好多资料,终于大概学会了libcurl。现在用C++写程序实现采用get方式请求baidu.com的网页,并将获取到的网页内容保存到本地文件夹中,也... 求教大神...我搜索了好多资料,终于大概学会了libcurl。现在用C++写程序实现采用get方式请求baidu.com的网页,并将获取到的网页内容保存到本地文件夹中,也输出到屏幕上。可是获取出来的是302 Found。求大神帮忙一下修改一下 代码贴了问题会被删,我贴图片。。 #include <io.h>
#include "curl/curl.h"
#pragma comment(lib, "ws2_32.lib")
#pragma comment ( lib, "libcurl.lib" )
#pragma comment ( lib, "ws2_32.lib" )
#pragma comment ( lib, "winmm.lib" )
#pragma comment ( lib, "wldap32.lib" )
//这是libcurl接收数据的回调函数,相当于recv的死循环
//其中stream可以自定义数据类型,这里我传入的是文件保存路径
static size_t write_callback( void *ptr, size_t size, size_t nmemb, void *stream )
{
int len = size * nmemb;
int written = len;
FILE *fp = NULL;

if ( access( (char*)stream, 0 ) == -1 )
{
fp = fopen( (char*) stream, "wb" );
}
else
{
fp = fopen( (char*) stream, "ab" );
}
if (fp)
{
fwrite( ptr, size, nmemb, fp );
}
return written;
}
int GetUrl( const char *url, char *savepath )
{
CURL *curl;
CURLcode res;
struct curl_slist *chunk = NULL;

curl = curl_easy_init();
if ( curl ) {
curl_easy_setopt( curl, CURLOPT_VERBOSE, 0L );
curl_easy_setopt( curl, CURLOPT_URL, url );
//指定回调函数
curl_easy_setopt( curl, CURLOPT_WRITEFUNCTION, write_callback);
//这个变量可作为接收或传递数据的作用
curl_easy_setopt( curl, CURLOPT_WRITEDATA, savepath );
res = curl_easy_perform( curl );
if (res == CURLE_OK)
{
return 1;
}
return 0;
}
}
int main( void )
{
if ( GetUrl( "t.sina.com.cn", "c:/1.txt" ) )
{
printf( "OK" );
}
return 0;
} 要配置HTTP代理,您可以使用StormProxies。以下是一些基本步骤:1. 注册并登录到StormProxies帐户。2. 在“仪表板”页面上,单击“创建代理”按钮。3. 选择“HTTP代理”作为代理类型。您还可以选择其他类型的代理,... 点击进入详情页 本回答由 Storm代理 提供