2011-10-25 3 views
1

저는 웹 서비스에 json 데이터를 보내기 위해 노력하고 있습니다. json.phph y 스크립트에 $ _REQUEST를 보내는 모든 PHP 스크립트를 출력하는 PHP입니다. 하지만 hehe 끝에서 나는 아무것도받지 못한다. urlenc 형식의 양식을 보내려고했는데 정상적인 데이터 D를 보냈다. 어떻게 이런 일을 할 수 있는지 아이디어가 부족하다.lib 커링을 통해 json 데이터를 보내는 방법을 알아 내려고 시도했습니다.

#include <stdio.h> 
#include <string.h> 

#include <curl/curl.h> 

int main(int argc, char *argv[]) 
{ 
    CURL *curl; 
    CURLcode res; 

    struct curl_httppost *formpost=NULL; 
    struct curl_httppost *lastptr=NULL; 
    struct curl_slist *headerlist=NULL; 
    static const char buf[] = "Content-Type: application/json"; 

    curl_global_init(CURL_GLOBAL_ALL); 
/* 
     curl_formadd(&formpost, 
       &lastptr, 
       CURLFORM_COPYNAME, "json", 
       CURLFORM_COPYCONTENTS, "reactantsJSON={\"O=O\":{\"N\":1}}&productsJSON= [\"O=O\",\"[O]\"]&temperature=2273.15&pressure=101.325", 
       CURLFORM_END); 
*/ 
    curl = curl_easy_init(); 
    /* initalize custom header list (stating that Expect: 100-continue is not 
*  wanted */ 
    headerlist = curl_slist_append(headerlist, buf); 
    if(curl) { 
    /* what URL that receives this POST */ 
    curl_easy_setopt(curl, CURLOPT_URL, "http://127.0.0.1/json.php"); 
     curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headerlist); 
    curl_easy_setopt(curl,CURLOPT_POST,1); 
    curl_easy_setopt(curl,CURLOPT_POSTFIELDS,  "reactantsJSON%3d%7b%22O%3dO%22%3a%7b%22N%22%3a1%7d%7d%26productsJSON%3d%5b%22O%3dO%22%2c%22%5bO%5d%22%5d%26temperature%3d2273.15%26pressure%3d101.325" ); 
// curl_easy_setopt(curl,CURLOPT_POSTFIELDS, "reactantsJSON={\"O=O\": {\"N\":1}}&productsJSON=[\"O=O\",\"[O]\"]&temperature=2273.15&pressure=101.325" ); 
// if ((argc == 2) && (!strcmp(argv[1], "noexpectheader"))) 
     /* only disable 100-continue header if explicitly requested */ 
    curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost); 
    res = curl_easy_perform(curl); 

    /* always cleanup */ 
    curl_easy_cleanup(curl); 

    /* then cleanup the formpost chain */ 
    curl_formfree(formpost); 
    /* free slist */ 
    curl_slist_free_all (headerlist); 
    } 
    return 0; 
} 

답변

0

당신은 또는 CURLOPT_POSTFIELDS, 둘을 CURLOPT_HTTPPOST합니다. 두 종류의 POST 요청을 발행합니다.

+0

http_query 형식으로 작업을 마쳤습니다. – Freaktor

관련 문제