**:
最近在學習libcurl,並利用它提交post請求,可是返回的響應總是無從驗證該次post請求是否成功提交了。
1. 先看下根據firebug提交的一次成功的請求,這裡以login我喜歡上的xiami為例,嘻嘻~
1.1 本次post請求的http互動
1.3 經server端redirect的get
2. ok,接下來看下使用libcurl向xiami傳送post請求
2.1 使用libcurl的大概流程
curl_easy_init()
curl_easy_setopt()
curl_easy_perform()
curl_easy_cleanup()
呵呵~超簡單的吧,具體的意思這裡就不詳細說了,參見
2.2 再來看簡單的**
[cpp]view plain
copy
print?
#include
#include
#include
#include
#define posturl ""
#define postfields "[email protected]&password=mypassword&autologin=1&submit=登 錄&type="
#define filename "curlposttest.log"
size_t
write_data(
void
*buffer,
size_t
size,
size_t
nmemb,
void
*userp);
intmain(
intargc,
char
*argv)
curl = curl_easy_init();
curl_easy_setopt(curl, curlopt_url, posturl);
curl_easy_setopt(curl, curlopt_postfields, postfields);
curl_easy_setopt(curl, curlopt_writefunction, write_data);
curl_easy_setopt(curl, curlopt_writedata, fptr);
curl_easy_setopt(curl, curlopt_post, 1);
curl_easy_setopt(curl, curlopt_verbose, 1);
curl_easy_setopt(curl, curlopt_header, 1);
curl_easy_setopt(curl, curlopt_followlocation, 1);
curl_easy_setopt(curl, curlopt_cookiefile, "/users/zhu/cprojects/curlposttest.cookie"
);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
} size_t
write_data(
void
*buffer,
size_t
size,
size_t
nmemb,
void
*userp)
2.3 說下這當中的一些操作吧
curlopt_url: url位址
curlopt_postfields: post引數
curlopt_writefunction: 對返回的資料進行操作的函式位址
curlopt_writedata: 設定writefunction的第四個引數值
curlopt_post: 設定為非0表示本次操作為post
curlopt_verbose: 設定為非0在執行時列印請求資訊
curlopt_header: 設定為非0將響應頭資訊同響應體一起傳給writefunction
curlopt_followlocation: 設定為非0,響應頭資訊location
curlopt_cookiefile: 哈哈,這個實在是太重要了,我之前嘗試了好多次沒法驗證該次post是否成功的原因就是沒有設定這個羅。設定對應的cookiefile路徑,該路徑檔案並不一定需要在物理磁碟上實際存在
2.4 接下來是成功返回的結果哦,呵呵,下面截圖當中的zhuzhu可以為證,不好意思,xiami上取了個比較cuo的名字~
**:
android 使用post 提交
1 使用post 方式提交時不要把須要傳遞的引數寫在url 中,一定要使用 basicnamevaluepair 這個類來完畢 opt discovery 在使用post 方式提交的時候不要把後面的引數直接傳遞過去。一定要使用下面的方式 設定http post請求引數必須用namevaluepair...
關於libcurl模擬提交form
因為本人對web機制了解較少,在使用c libcurl中遇到了很多問題。主要的解決方式 1,在網頁原始碼中找到提交form的定位。也就是網頁檔案對應form中的action屬性。往往都是提交到jsp或者php等指令碼中執行的,而不是直接提交到本網頁。2,要注意http頭。http頭的不同會引起網頁的...
Django 使用jquery提交post請求
使用django框架編寫web專案時,在前端頁面中使用jquery提交post請求,遇到到了一些問題,在此記錄學習的過程 img.html document ready function 使用post提交 問題 是django在處理post請求時出現403錯誤 原文1 解決方法 在settings....