2016-02-17 93 views
1

我有作为肥皂[服务器] web服务soaplib,所有的请求路由和响应为xml由url well.but我无法获取请求HTTP标头,我怎样才能获取请求HTTP标头呈现视图的一些方法的类?如何在soaplib视图文件中获取请求HTTP标头?

这样的方法:

def redirect_http(self,request): 
    return render(request, 'ask/redirect.html', { 
     ''' 'question': question, 
     'error_message': "You didn't select a choice.", ''' 
    }) 

代码项目:

soap.py

''' 
documentation in http://soaplib.github.com/soaplib/2_0/ 
''' 
import base64 
import soaplib 
from soaplib.core import Application 
from soaplib.core.model import primitive as soap_types 
from soaplib.core.service import DefinitionBase 
from soaplib.core.service import rpc as soapmethod 
from soaplib.core.server import wsgi 
from soaplib.core.model.clazz import ClassModel 
from soaplib.core.model.clazz import Array 

from django.http import HttpResponse 

# the class with actual web methods 

# the class which acts as a wrapper between soaplib WSGI functionality and Django 
class DjangoSoapApp(wsgi.Application): 
    def __call__(self, request): 
     # wrap the soaplib response into a Django response object 
     django_response = HttpResponse() 
     def start_response(status, headers): 
      status, reason = status.split(' ', 1) 
      django_response.status_code = int(status) 
      for header, value in headers: 
       django_response[header] = value 
     response = super(DjangoSoapApp, self).__call__(request.META, start_response) 
     django_response.content = '\n'.join(response) 
     return django_response 

class SoapView(DefinitionBase): 
    @classmethod 
    def as_view(cls): 
     soap_application = Application([cls], __name__) 
     return DjangoSoapApp(soap_application) 


# the view to use in urls.py 
#my_soap_service = DjangoSoapApp([MySOAPService], __name__) 

views.py

from soap import SoapView 
from soap import soapmethod 
from soap import soap_types, Array 
class MySoapService(SoapView): 
    __tns__ = '[url]http://localhost:8989/api/soap/verify.wsdl[/url]' 
    @soapmethod(soap_types.String, soap_types.Integer, returns=soap_types.String) 
    def request_verify(self, q, id, uri): 
     #Some Code 
     return 'some return' 
my_soap_service = MySoapService.as_view() 

urls.py

from django.conf.urls import patterns, include, url 
from django.views.generic import RedirectView 
import views 

# Main URL Patterns 
urlpatterns = [ 
    url(r'^verify', views.my_soap_service), 
    url(r'^verify.wsdl', views.my_soap_service), 
] 
+0

问题解决:更改方法请求(用于生成html并获取http标头大部分观察协议HTTP和结构),因此请求和响应html内容应发送http请求并获取生成的所有标头 – evergreen

回答

0

问题解决:改变方法请求(生成html和获得http头最遵守协议HTTP和结构) ,所以要求和回应html内容应发送http请求并获得所有生成的头文件