2014-12-24 40 views
1

我正在使用gsoap httppost插件來實現接受發佈請求的服務器。gsoap在404錯誤的情況下更改響應內容類型

在錯誤的情況下,我返回404錯誤,但內容類型總是text/xml,但是我需要的內容類型爲text/html

下面是代碼片段

int wildcard_handler(struct soap* soap) 
{ 
    stringstream ss; 
    ss << "In wild card handler content_type" << soap->http_content; 
    LOGDEBUG(ss.str()); 

    soap->http_content = "text/html"; 
    soap_send_empty_response(soap, 404); 
    return SOAP_OK; 

} 

但在瀏覽器中我收到的文本/ xml &錯誤404.

回答

1

stdsoap2.cpp爲了返回text/html答案您應該使用:

int wildcard_handler(struct soap* soap) 
{ 
    soap_response(soap, SOAP_HTML); 
    soap_send(soap, "<HTML>...</HTML>"); 
    soap_end_send(soap); 
    soap_closesock(soap); 
    return SOAP_OK; 
} 

這將允許您發送HTML答案,但不是一個錯誤404

爲了發送404和text/html內容是可能的,但它是更爲複雜,因爲它需要在此改變soap-> fresponse處理程序傳播http錯誤代碼和SOAP_HTML標誌。

相關問題