2016-09-23 3 views
0

libCurl을 C++로 사용하여 xml 파일을 내 서버에 요청합니다. 게시물이 작동하면 내 서버에서 xml을 수신합니다. 이 머리글/바닥 글은 무엇libCurl을 사용하여 POST에서 알 수없는 머리말과 꼬리말을 추가했습니다.

------------------------------b6966127f870Content-Disposition: form-data; name="myName"; filename="myFile.xml"Content-Type: application/xml<CORRECT XML FILE HERE>------------------------------b6966127f870-- 

그러나 XML은 또한 XML 주위에 이상한 헤더 & 바닥 글이있다?

제거 할 수 있습니까? 아니면 그냥 주위를 파싱해야합니까?

컬을 추가 했습니까?

다음은 XML 파일을 게시하기 위해 작성한 관련 컬링 호출입니다.

void CurlUtils::postFileToURL(const char* const inFile, 
           const char* const urlString) 
{ 
    // Setup 
    CURL* const curl = curl_easy_init(); 
    curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L); 
    curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L); 

    // Post 
    struct curl_httppost* post = NULL; 
    struct curl_httppost* last = NULL; 
    curl_formadd(&post, &last, 
       CURLFORM_COPYNAME, "myName", 
       CURLFORM_FILE, inFile, 
       CURLFORM_END); 
    curl_easy_setopt(curl, CURLOPT_URL, urlString); 
    curl_easy_setopt(curl, CURLOPT_HTTPPOST, post); 
    curl_easy_perform(curl); 

    // Cleanup ... 
} 

답변

2

CURLOPT_HTTPPOST은 서버에 멀티 파트 양식을 사용합니다. 다중 파트 양식은 MIME 스타일 분리 기호와 각 부분에 대한 머리글 집합이있는 일련의 부분으로, 사용자가 볼 수있는 것과 정확히 일치합니다.

멀티 파트 항목이없는 일반 POST를 원하면 CURLOPT_POSTFIELDS을 사용하거나 읽기 콜백을 설정하고 CURLOPT_POST을 사용하십시오.

관련 문제