Out of curiosity, what is your end-goal with this? _Nik
On 7/6/2012 12:44 PM, Jeff Silverman wrote: > Nik, I appreciate your help, but I'm about at the end with this. I'm > throwing in the towel. > > On Jul 6, 1:40 pm, Nikolas Stevenson-Molnar <nik.mol...@consbio.org> > wrote: >> I'm not exactly sure, I usually try to avoid SOAP. But perhaps something >> like this?http://www.w3schools.com/soap/soap_example.asp. You'll have >> to modify it to match your SOAP app, of course. >> >> Depending on what you're trying to accomplish, SOAP may not be your best >> option. I tend to prefer REST, and there are some good Django-compatible >> libraries for implementing REST >> interfaces:http://django-rest-framework.org/(for example; there are others >> as well) >> >> _Nik >> >> On 7/6/2012 10:32 AM, Jeff Silverman wrote: >> >> >> >>> What should the XML look like? >>> On Jul 6, 12:03 pm, Nikolas Stevenson-Molnar <nik.mol...@consbio.org> >>> wrote: >>>> Perhaps it's expecting XML in the request and trying to parse your POST >>>> data (which is not XML)? >>>> _Nik >>>> On Jul 6, 2012, at 6:03 AM, Jeff Silverman wrote: >>>>> Ok Nik. I have removed the CSRF middleware and get a brand new error. >>>>> XMLSyntaxError at /hello/ >>>>> error parsing attribute name, line 1, column 6Request Method: POST >>>>> Request URL:http://piadm42.troweprice.com:5555/hello/ >>>>> Django Version: 1.3.1 >>>>> Exception Type: XMLSyntaxError >>>>> Exception Value: error parsing attribute name, line 1, column 6 >>>>> Exception Location: /usr/lib/python2.6/site-packages/ >>>>> soaplib-2.0.0_beta1-py2.6.egg/soaplib/core/_base.py in >>>>> _parse_xml_string, line 248 >>>>> Python Executable: /usr/bin/python >>>>> Python Version: 2.6.6 >>>>> The POST in fiddler is something like this -> >>>>> http://mysite.com:5555/hello/ >>>>> and the request body contains -> <name=fred×=2> >>>>> On Jul 5, 10:35 pm, Nikolas Stevenson-Molnar <nik.mol...@consbio.org> >>>>> wrote: >>>>>> Yes, I would expect a 403 when the CSRF middleware is active, the >>>>>> decorator is not used, and no CSRF token is provided. This is the >>>>>> intended behavior. You can fix this in a few ways: >>>>>> 1. Apply the decorator to the __call__ method (rather than to the class >>>>>> itself). If I understand how this code works, that should correctly >>>>>> disable CSRF for the view. >>>>>> 2. Provide a CSRF value with the POST data, as you suggested. This all >>>>>> depends on how the request is made. Django's CSRF system relies on a >>>>>> CSRF value set in a cookie. You have to mimic a browsers cookie >>>>>> functionality, then use the value of the CSRF cookie with evey >>>>>> request you make. By default, the cookie name is 'csrftoken'. For >>>>>> more info on the CSRF process: >>>>>> https://docs.djangoproject.com/en/1.4/ref/contrib/csrf/ >>>>>> 3. Disable CSRF altogether. Simply remove the CsrfViewMiddleware from >>>>>> your settings and you're good to go. >>>>>> _Nik >>>>>> On 7/5/2012 6:22 PM, Jeff Silverman wrote: >>>>>>> Nik, if I remove the csrf decorator and leave the middleware in place, >>>>>>> I get the 403. Is there a way to add the token on the POST command, >>>>>>> or is there another way of leaving the middleware in place, but turn >>>>>>> off csrf without using the decorator? >>>>>>> On Thursday, July 5, 2012 8:33:51 PM UTC-4, Jeff Silverman wrote: >>>>>>> Nik, I will give that a try. The reason for the decorator was >>>>>>> that I was getting 403 forbidden, and the decorator made that one >>>>>>> go away. If I remove the csrf from the settings file, will that >>>>>>> solve that problem? >>>>>>> On Tuesday, July 3, 2012 9:32:20 AM UTC-4, Jeff Silverman wrote: >>>>>>> Below is the code from the views.py >>>>>>> The405is retunred from the 'return super(DjangoSoapApp, >>>>>>> self).__init__(Application(services, tns))' statement. I am >>>>>>> using >>>>>>> python 2.6, soaplib20 and django 1.3. I am struggling to >>>>>>> understand >>>>>>> what exactly is wrong here. >>>>>>> class HelloWorldService(DefinitionBase): >>>>>>> @soap(String,Integer,_returns=Array(String)) >>>>>>> def say_smello(self,name,times): >>>>>>> results = [] >>>>>>> for i in range(0,times): >>>>>>> results.append('Hello, %s'%name) >>>>>>> return results >>>>>>> class DjangoSoapApp(WSGIApplication): >>>>>>> csrf_exempt = True >>>>>>> def __init__(self, services, tns): >>>>>>> """Create Django view for given SOAP soaplib services >>>>>>> and >>>>>>> tns""" >>>>>>> return super(DjangoSoapApp, >>>>>>> self).__init__(Application(services, tns)) >>>>>>> def __call__(self, request): >>>>>>> django_response = HttpResponse() >>>>>>> def start_response(status, headers): >>>>>>> django_response.status_code = int(status.split(' >>>>>>> ', 1)[0]) >>>>>>> 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 >>>>>>> # the view to use in urls.py >>>>>>> hello_world_service = DjangoSoapApp([HelloWorldService], >>>>>>> '__name__') >>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "Django users" group. >>>>>>> To view this discussion on the web visit >>>>>>> https://groups.google.com/d/msg/django-users/-/WpDQ4UjGEQwJ. >>>>>>> To post to this group, send email to django-users@googlegroups.com. >>>>>>> To unsubscribe from this group, send email to >>>>>>> django-users+unsubscr...@googlegroups.com. >>>>>>> For more options, visit this group at >>>>>>> http://groups.google.com/group/django-users?hl=en.-Hidequoted text - >>>>>> - Show quoted text - >>>>> -- >>>>> You received this message because you are subscribed to the Google Groups >>>>> "Django users" group. >>>>> To post to this group, send email to django-users@googlegroups.com. >>>>> To unsubscribe from this group, send email to >>>>> django-users+unsubscr...@googlegroups.com. >>>>> For more options, visit this group >>>>> athttp://groups.google.com/group/django-users?hl=en.-Hide quoted text - >>>> - Show quoted text -- Hide quoted text - >> - Show quoted text - -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.