首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >curl使用自定义函数追加slist

curl使用自定义函数追加slist
EN

Stack Overflow用户
提问于 2021-02-10 21:40:32
回答 1查看 39关注 0票数 0

我尝试使用curl_slist_append()附加一些字符串,这是我的代码的一部分,create_curl_slist函数总是返回SSXML_OK,但实际上这些字符串不会被附加。

代码语言:javascript
复制
    static SSXML create_curl_slist(struct curl_slist *chunk)
    {
        if ( (chunk = curl_slist_append(chunk, "Accept-Encoding: gzip,deflate") ) == NULL ) return SSXML_CURL_ERROR;
        if ( (chunk = curl_slist_append(chunk, "Content-Type: text/xml;charset=UTF-8") ) == NULL ) return SSXML_CURL_ERROR;
        if ( (chunk = curl_slist_append(chunk, "Content-Length: 306") ) == NULL ) return SSXML_CURL_ERROR;
        if ( (chunk = curl_slist_append(chunk, "Host: test.test:8443") ) == NULL ) return SSXML_CURL_ERROR;
        if ( (chunk = curl_slist_append(chunk, "Connection: Keep-Alive") ) == NULL ) return SSXML_CURL_ERROR;
        if ( (chunk = curl_slist_append(chunk, "User-Agent: Apache-HttpClient/4.5.5 (Java/12.0.1)") ) == NULL ) return SSXML_CURL_ERROR;
        if ( (chunk = curl_slist_append(chunk, "Cookie: sap-usercontext=sap-client=100") ) == NULL ) return SSXML_CURL_ERROR;
    
        return SSXML_OK;
    }
    
    int some_func()
    {
        struct curl_slist *chunk = NULL;
        create_curl_slist(chunk);
//there is more here
        curl_slist_free_all(chunk);
    }

但是,当我像下面这样做内联时,一切都运行得很好

代码语言:javascript
复制
    int some_func()
    {
        struct curl_slist *chunk = NULL;
    
        if ( (chunk = curl_slist_append(chunk, "Accept-Encoding: gzip,deflate") ) == NULL ) return SSXML_CURL_ERROR;
        if ( (chunk = curl_slist_append(chunk, "Content-Type: text/xml;charset=UTF-8") ) == NULL ) return SSXML_CURL_ERROR;
        if ( (chunk = curl_slist_append(chunk, "Host: test.test:8443") ) == NULL ) return SSXML_CURL_ERROR;
        if ( (chunk = curl_slist_append(chunk, "Connection: Keep-Alive") ) == NULL ) return SSXML_CURL_ERROR;
        if ( (chunk = curl_slist_append(chunk, "User-Agent: Apache-HttpClient/4.5.5 (Java/12.0.1)") ) == NULL ) return SSXML_CURL_ERROR;
        if ( (chunk = curl_slist_append(chunk, "Cookie: sap-usercontext=sap-client=100") ) == NULL ) return SSXML_CURL_ERROR;
        if ( (chunk = curl_slist_append(chunk, "Content-Length: 306") ) == NULL ) return SSXML_CURL_ERROR;
        curl_slist_free_all(chunk);
    }

我错过了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-11 16:46:42

函数create_curl_slist(struct curl_slist *chunk)更新其参数chunk,这些更新对调用者不可见。当执行返回到some_func()时,其变量chunk仍为NULL

在第二个示例中,some_func()更新其变量chunk

通过引用传递chunk或返回更新后的chunk

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66138023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档