[Soap-Python] How to change SOAP response headers
Mehmet Arikkan
marikkan at gmail.com
Wed Jun 6 15:13:32 CEST 2012
Hi Burak,
If I comment out the below _on_method_call and instead change say_hello
function to this:
class HelloWorldService(ServiceBase):
__out_header__ = RespHeader
@rpc(Unicode, Integer, _returns=Iterable(Unicode))
def say_hello(ctx, name, times):
ctx.out_header = RespHeader()
ctx.out_header.Elem1 = 'Test1'
for i in range(times):
yield u'Hello, %s' % name
I do not see Soap Header put in the message. Is this not a proper way?
How else can I introduce method specific headers?
On Mon, May 28, 2012 at 12:18 PM, Burak Arslan
<burak.arslan at arskom.com.tr>wrote:
> On 05/28/12 10:57, Mehmet Arikkan wrote:
>
> Hi Burak,
>
> I have found this answer as well, please don't bother :). I guess I have
> to use @rpc instead of @sprc so that I can include ctx variable. Please let
> me know if I am mistaken.
>
>
> Merhaba,
>
> Yes, you're correct. And in case you think I should make any additions to
> the documentation, please let me know.
>
> Best,
> Burak
>
>
>
> Regards,
> Mehmet
>
> On Mon, May 28, 2012 at 10:34 AM, Mehmet Arikkan <marikkan at gmail.com>wrote:
>
>> Hi Burak,
>>
>> "You could also do it in the user code as well, without messing with
>> events at all, in case you need to add method-specific headers."
>>
>> Could you please give an example about this method? This is what I need.
>> I think I don't have a clear understanding on how I can use the "ctx"
>> variable in an @rpc or @srpc decorator function.
>>
>> Suppose I have two methods A and B and I want to include an AHeader and
>> a BHeader in them respectively. How can I do that, could you please
>> elaborate with a simple example?
>>
>> Regards,
>> Mehmet
>>
>> On Fri, May 25, 2012 at 9:14 PM, Burak Arslan <
>> burak.arslan at arskom.com.tr> wrote:
>>
>>> On 05/25/12 21:09, Mehmet Arikkan wrote:
>>>
>>> Actually what I meant to ask is that whether my way to add the header is
>>> a proper way:
>>>
>>> def _on_method_call(ctx):
>>> ctx.out_header = RespHeader()
>>> ctx.out_header.Elem1 = 'Test1'
>>> ctx.out_header.Elem2 = 'Test2'
>>>
>>> HelloWorldService.event_manager.add_listener('method_call',
>>> _on_method_call)
>>>
>>> Is this how you would properly add a SOAP Header to your outgoing
>>> message?
>>>
>>>
>>> Yes, you could do it like this with events if you want to add that
>>> header to every response regardless of the method name. You could also do
>>> it in the user code as well, without messing with events at all, in case
>>> you need to add method-specific headers.
>>>
>>> Does that help?
>>>
>>> Best,
>>> Burak
>>>
>>>
>>> _______________________________________________
>>> Soap mailing list
>>> Soap at python.org
>>> http://mail.python.org/mailman/listinfo/soap
>>>
>>>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/soap/attachments/20120606/9195776f/attachment.html>
More information about the Soap
mailing list