2012-07-22 13 views
6

Mam problem z libcurl. Napisałem prosty program, który powinien opublikować dane (wypełnić formularz), ale program nie działa. Moja forma:Publikowanie danych za pomocą 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> 
... 

Program:

#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; 
} 

oczywiście przetestowane ten kod: http://curl.haxx.se/libcurl/c/postit2.html ale to nie działa.

Czy ktoś może mi pomóc?

+1

mógłbyś zdefiniować „nie działa”, łączy mnie –

+0

więc pokażę wam prosty przykład. Używam http://curl.haxx.se/libcurl/c/http-post.html tego programu i testuję go na tej stronie: m.se.pl/nc/comments/dodaj/27/269110/ adres 'curl_easy_setopt (curl, CURLOPT_URL," http://m.se.pl/nc/comments/dodaj/27/269110/");'and 'curl_easy_setopt (curl, CURLOPT_POSTFIELDS," name = test & comment = test "); 'i skompiluj go - wszystko jest w porządku. Zaczynam swój program po 5 sekundach. program pokaż mi źródło tej strony (oczywiście kod źródłowy przed dodaniem posta). – user1518451

+1

Na stronie, którą podajesz, musisz również podać dodatkowe informacje, aby utworzyć post, na przykład: security_hash, timesamp, next, etc (są ukryte pola). Możesz je zobaczyć w kodzie źródłowym strony. Przypuszczam, że to powoduje, że zapytanie o odrzut serwera powoduje brak strony internetowej. –

Odpowiedz

3

trzeba ustawić CURLOPT_URL na adres, który wskazuje, sprawdź

http://curl.haxx.se/libcurl/c/http-post.html

np

+0

Sprawdziłem to: http://curl.haxx.se/libcurl/c/http-post.html ale nie wysłałem moich danych. Wszelkie sugestie? – user1518451

+1

wygląda na to, że brakowało curl_global_init –

+0

Nie przegapiłem curl_global_init Przykład, którego używam (http://curl.haxx.se/libcurl/c/http-post.html) zawiera go. Wszelkie inne sugestie? – user1518451

Powiązane problemy