使用libcurl发布数据
Post data with libcurl
我对libcurl有问题。我写了一个简单的程序,应该发布数据(填写表格),但程序不起作用。我的表格:
...
<div><label for="id_person_name">Your name</label> <input type="text" id="id_person_name" name="name" /></div>
<div></div>
<div class="clear"></div>
<div><label for="id_comment">Comment</label><textarea name="comment" id="id_comment" rows="10" cols="60" class="txt"></textarea></div>
...
程序:
#include <curl/curl.h>
#include <iostream>
using namespace std;
int main(){
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://examplesite.com");
curl_easy_setopt(curl, CURLOPT_POST, 1);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "name=Bjarne&comment=example");
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
cout << endl;
}
return 0;
}
当然,我测试了这个代码:http://curl.haxx.se/libcurl/c/postit2.html但它不起作用。
有人能帮我吗?
您需要设置CURLOPT_URL
来寻址哪些<form>
点,例如这里所示。
来自上述链接的代码是:
/***************************************************************************
* _ _ ____ _
* Project ___| | | | _ | |
* / __| | | | |_) | |
* | (__| |_| | _ <| |___
* ___|___/|_| ______|
*
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
* are also available at https://curl.haxx.se/docs/copyright.html.
*
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
* copies of the Software, and permit persons to whom the Software is
* furnished to do so, under the terms of the COPYING file.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
***************************************************************************/
/* <DESC>
* simple HTTP POST using the easy interface
* </DESC>
*/
#include <stdio.h>
#include <curl/curl.h>
int main(void)
{
CURL *curl;
CURLcode res;
/* In windows, this will init the winsock stuff */
curl_global_init(CURL_GLOBAL_ALL);
/* get a curl handle */
curl = curl_easy_init();
if(curl) {
/* First set the URL that is about to receive our POST. This URL can
just as well be a https:// URL if that is what should receive the
data. */
curl_easy_setopt(curl, CURLOPT_URL, "http://postit.example.com/moo.cgi");
/* Now specify the POST data */
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "name=daniel&project=curl");
/* Perform the request, res will get the return code */
res = curl_easy_perform(curl);
/* Check for errors */
if(res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %sn",
curl_easy_strerror(res));
/* always cleanup */
curl_easy_cleanup(curl);
}
curl_global_cleanup();
return 0;
}
相关文章:
- 在 c++ 中解析数据包数据的最佳方法是什么?
- C++:如何通过 curl 调用使用 HTTP post 请求发送二进制数据(protobuf 数据)
- 我无法将数据从数据网格列传输到 C# 中的数组以获取文本框建议收集数据
- 如何用尽可能少的数据将数据缓冲区计算为零校验和值
- 如何将通过TCP发送数据的数据从C++转换为Java
- 从QML ListView中QABStractListModel中的数据操纵数据
- Windivert-修改数据包数据/有效载荷内容
- 如何从C ++的输出中删除垃圾数据(垃圾数据)
- 如何编写循环以通过列表迭代并打印列表中每个元素的数据的数据
- 加入线程后,是访问共享数据的数据竞赛吗?
- 亚类FSTREAM和解密数据即时数据
- 将数据从数据阅读器终端实时获取到GUI
- 将数据从数据读取器终端获取到GUI(QtCreator)
- 使用 libpcap 读取数据包数据
- SDL_net UDP 数据包数据
- 用于插入大部分排序数据的数据结构,这些数据将保持排序顺序
- 从Qt应用程序获取原始数据包数据
- C++:用于高效插入和检索自定义数据的数据结构
- 如何将用户输入的数据从数据网格视图获取到窗口窗体图
- 将libpcap数据包数据从const u_char*复制到另一个const u_car*