Форум » [x]Harbour » Http post запрос » Ответить

Http post запрос

Dazzler: Подскажите, пожалуйста, как сделать Http post запрос по определенному URL? Какие необходимо библиотеки подключать? Может кто уже реализовывал...

Ответов - 5

Dima: Dazzler пишет: Http post вот это вбей в поиск и выбери искать все слова а вообще tIPClientHTTP (из HBTIP) METHOD Post( xPostData, cQuery )

SergKis: Dazzler пишет: как сделать Http post гляньте шаблоны (html) *.tpl и prg на предмет POST: http://www.dbtopas.lt/hrb/uhttpd-0.3.zip

Andrey: \MiniGUI\SAMPLES\Advanced\Downloader


Dazzler: Спасибо!

santy: to Dazzler Подключите библиотеку hbtip (tip in xharbour). Примеры использования есть в исходниках к (x)Harbour. Пример использования: [pre2] FUNCTION Main LOCAL oUrl, oInternet LOCAL cData, cRet LOCAL cParam1 := "Pippo", cParam2 := "Pluto", cParam3 := "Paperino" //parameters sample oUrl := TURL():New( "http://localhost:8080") oUrl:cPath := "/myapp" oInternet := TIPClientHTTP():New(oUrl) oInternet:cUserAgent := "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" cData := "" oUrl:cFile := "prova.php" WITH OBJECT oInternet IF :Open() IF :Post("p1=" + cParam1 + "&p2=" + cParam2 + "&p3=" + cParam3) DO WHILE !Empty((cRet:=:Read())) cData += cRet ENDDO ENDIF ENDIF :Close() END WITH ? cData RETURN Nil [/pre2] Пример использования библиотеки curl : [pre2] #include "hbcurl.ch" PROCEDURE Main() LOCAL fpParams := {} AAdd(fpParams, {"UMkey", "t53HmFZ7OYyJr3lxx1XvW966kyE0Vu8U"}) AAdd(fpParams, {"UMcommand", "cc:sale"}) AAdd(fpParams, {"UMamount", 2.34}) AAdd(fpParams, {"UMcard", 4444333322221111}) AAdd(fpParams, {"UMexpir", 1220}) AAdd(fpParams, {"UMname", "TestCPP"}) ? CallFideliPay(fpParams) // GET // ? CallFideliPay(fpParams, .T.) // POST // ? CallFideliPay(fpParams, .T., "output.txt") // Save result to file RETURN /** * Call FideliPay * * <params> - Request parameters {{"param1", "value1"}, {"param2", "value2"}} * <postRequest> - Is request method POST? (default: False) * <resultFile> - File to save result (if not defined, output is returned) */ FUNCTION CallFideliPay(params, postRequest, resultFile) LOCAL cFideliPayURL := "https://secure.fidelipay.com/gate" LOCAL curl LOCAL requestParams := "" LOCAL param LOCAL result // Default IF(params == NIL); params := {}; ENDIF IF(postRequest == NIL); postRequest := .F.; ENDIF // Init cURL curl_global_init() curl := curl_easy_init() // Do NOT include header in output curl_easy_setopt(curl, HB_CURLOPT_HEADER, .F.) // Parameters FOR EACH param IN params requestParams += param[1] + "=" + curl_easy_escape(curl, AllTrim(HB_ValToStr(param[2]))) + "&" NEXT // Removes trailing & IF(LEN(requestParams) > 0) requestParams := LEFT(requestParams, LEN(requestParams) - 1) ENDIF IF(postRequest) // POST request curl_easy_setopt(curl, HB_CURLOPT_POST, .T.) curl_easy_setopt(curl, HB_CURLOPT_POSTFIELDS, requestParams) curl_easy_setopt(curl, HB_CURLOPT_URL, cFideliPayURL) ELSE curl_easy_setopt(curl, HB_CURLOPT_URL, cFideliPayURL + "?" + requestParams) ENDIF // Save result to file? IF(resultFile != NIL) curl_easy_setopt(curl, HB_CURLOPT_DL_FILE_SETUP, resultFile) result := .T. ELSE curl_easy_setopt(curl, HB_CURLOPT_DL_BUFF_SETUP) ENDIF // Execute curl_easy_perform(curl) // Load result from buffer into variable IF(result == NIL) result := curl_easy_dl_buff_get(curl) ENDIF curl_easy_cleanup(curl) curl_global_cleanup() RETURN result [/pre2]



полная версия страницы