2014-12-24 3 views
1

Я использую gloap httppost plugin для реализации сервера, который принимает пост-запрос.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 содержания возможно, но это является более сложным, поскольку он должен overide soap-> fresponse обработчик для распространения HTTP-кода ошибки и флаг SOAP_HTML.

 Смежные вопросы

  • Нет связанных вопросов^_^