Chinaunix

标题: 采用curl上传问题。请大虾们把把脉! [打印本页]

作者: lemonniu    时间: 2008-09-10 13:50
标题: 采用curl上传问题。请大虾们把把脉!
我的程序是用来抓词的,采用curl+regex;首先是从服务器里取出网页,然后用自己的程序从中取出想要的数据,进行一些列的处理,最后做成xml格式,再使用curl的POST方法,将字符串发送到数据库里。但是问题就处在最后这一步上:例如从数据里有100个网页,通过程序输出能看出,这100个网页都下载到本机上来了,也进行了处理,但是上传后发现,数据里并不是100个记录,接近50左右。不关你数据库里有多少记录,下载下来是百分百的,但是上传的数据大约只有百分之五十左右。。。。请大虾们帮忙分析一下。。。晚辈实在是找不出原因。

   谢谢!


[ 本帖最后由 lemonniu 于 2008-9-10 14:13 编辑 ]
作者: flw    时间: 2008-09-10 14:15
我这里是好的啊。我这里有 100 个。
作者: lemonniu    时间: 2008-09-10 14:24
原帖由 flw 于 2008-9-10 14:15 发表
我这里是好的啊。我这里有 100 个。




:em11: :em11: :em11: :em11: :em11:
作者: flw    时间: 2008-09-10 14:32
原帖由 lemonniu 于 2008-9-10 14:24 发表

:em11: :em11: :em11: :em11: :em11:

一点都不好玩。
你应该问我:
那你是怎么做的呀?

这样我就可以说:
先说说你是怎么做的。

了。
作者: 5毛党党员    时间: 2008-09-10 14:34
那你们是怎么做的啊?为什么一个是100,一个只有50?
作者: lemonniu    时间: 2008-09-10 14:52
我怎么做的都说了。。。

问题到底出在哪,我就找不到了。。。
作者: lemonniu    时间: 2008-09-10 14:56
原帖由 5毛党党员 于 2008-9-10 14:34 发表
那你们是怎么做的啊?为什么一个是100,一个只有50?



恩。我也不知道问题出在哪。。。

我调试程序,发现,从数据库里取出来的网页都处理了,并都发送回数据库里了。但数据库里就记录了一部分。。。郁闷
作者: cookis    时间: 2008-09-10 14:58
你们没听明白 flw 什么意思? 他是叫你们把问题描述清楚.
作者: 5毛党党员    时间: 2008-09-10 14:58
那你放数据库之前都用日志打出来,和数据库比一下,差在哪
作者: flw    时间: 2008-09-10 14:59
原帖由 lemonniu 于 2008-9-10 14:56 发表

并都发送回数据库里了。但数据库里就记录了一部分。

你检查返回值了吗?

[ 本帖最后由 flw 于 2008-9-10 15:01 编辑 ]
作者: lemonniu    时间: 2008-09-10 15:13
原帖由 flw 于 2008-9-10 14:59 发表

你检查返回值了吗?


。。。。。
curl_easy_setopt(curl, CURLOPT_POSTFIELDS,request.c_str());
response=curl_easy_perform(curl);
cout<<response<<endl;
switch(response){
    case CURLE_OK:
         cout<<"send ok!"<<endl;
         break;
   case CURLE_HTTP_POST_ERROR:
        cout<<"post error!"<<endl;
        break;
。。。。。。。。
                }

程序都显示send ok
作者: lemonniu    时间: 2008-09-10 16:13
请求支援~
作者: lemonniu    时间: 2008-09-10 16:58
原帖由 flw 于 2008-9-10 14:15 发表
我这里是好的啊。我这里有 100 个。




怎么没动懂了。。。。大师
作者: lemonniu    时间: 2008-09-11 09:25
问题没解决,继续求助!
作者: qiujian5628    时间: 2008-09-11 10:55
CURLE_OK 并不表示上传成功
code = curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE , &retcode);
code = CURLE_OK 并且 retcode=200 才表示成功!
下载时也是同样道理,必须判断服务器端的返回值是否200,CURLE_OK只表示libcurl和服务器通讯正常!
作者: lemonniu    时间: 2008-09-11 13:10
原帖由 qiujian5628 于 2008-9-11 10:55 发表
CURLE_OK 并不表示上传成功
code = curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE , &retcode);
code = CURLE_OK 并且 retcode=200 才表示成功!
下载时也是同样道理,必须判断服务器端的返回值是否200, ...



刚才加上你说的判断测试了一下,还是那样,retcode确实=200了,但是问题依旧。。。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2