Re: [WebDNA] Receive JSON POST

This WebDNA talk-list message is from

2019


It keeps the original formatting.
numero = 114570
interpreted = N
texte = 2190 --Apple-Mail=_51AF986F-6DDB-4530-815F-AA37CCC7EB58 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 Thanks Stuart / Tom, More fun with this... Adding a ? alone for me didn't work, but putting a value after it kicked = things into gear. curl -H "Accept: application/json" -H "Content-type: application/json" = -X POST -d '{"userName":"dim@witted.net","password":"mybirthday"}' = http://localhost/wtve_auth.dna?json This ends up reversing the order so the contents of the JSON post are = the NAME of the formvariable and the VALUE of the formvariable is = "json". Interesting things happen when parsing though... [FormVariables name=3D&exact=3DF] [jsonstore table=3DjsonOject][name][/jsonstore] [search table=3DjsonOject&neuserNamedata=3D[blank]&max=3D1][founditems] [returnraw]HTTP/1.0 200 OK[eol]Status: 200[eol]Content-Type: = application/json[eol][eol][!] [/!]{"userName":"[userName]","password":"[password]"}[!] [/!][/returnraw] [/founditems][/search] [/FormVariables] That code works and spits back out the same json using the stored = values. So far so good. =20 However, when the password value in the json object contains an = ampersand, it breaks the whole thing. I've tried various combinations of [url]'ing and am coming up with none = that work. You can't URL the incoming JSON. JSONStore can't parse it. Any suggestions? I had no idea I was going to get stuck on such a = simple task for so long, lol. Boo. Also, on a side note, you cannot use [listfields] on the magic table = that JSONStore creates. MD > On Apr 25, 2019, at 2:44 PM, Stuart Tremain = wrote: >=20 > Nice idea :) >=20 >=20 > Kind regards >=20 > Stuart Tremain > Pharoah Lane Software > AUSTRALIA > webdna@plsoftware.com.au >=20 >=20 >=20 >=20 >=20 >=20 >=20 >> On 25 Apr 2019, at 22:30, Tom Duke > wrote: >>=20 >> Stuart / Michael, >>=20 >> Hi - it works on my CMS, but wouldn't work on a standard WebDNA = template. >>=20 >> So had a deeper look at it. I route all traffic through a single = template using modrewrite, I then add some apache server variables. >>=20 >> So if you do something like this: >>=20 >> .htaccess >> RewriteEngine On >> RewriteRule ^jsonpost/(.+)$ /json-post.tmpl?dummyName=3D [L] >>=20 >> json-post.tmpl >> FormVariables: >> [formvariables][name] >> [/formvariables] >>=20 >> Then set your webhook / receiving URL to >>=20 >> https://your-domain/jsonpost/anything = >>=20 >> You'll see the data. Looks like you have to add at least one = name:value pair. Not sure if this is an apache thing or a WebDNA thing, = I suspect the latter. >>=20 >> - Tom >>=20 >>=20 >>=20 >>=20 >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> Digital Revolutionaries >> 1st Floor, Castleriver House >> 14-15 Parliament Street >> Temple Bar,Dublin 2 >> Ireland >> ---------------------------------------------- >> [t]: + 353 1 4403907 >> [e]: > >> [w]: > >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >>=20 >>=20 >> On Thu, 25 Apr 2019 at 12:51, Stuart Tremain = > wrote: >> Hi Michael >>=20 >> Are you able to specify the url to which the JSON needs to be posted = ? >>=20 >> I just tried putting a ? at the end of the url eg: /test.html? >>=20 >> [SHELL]curl -X POST -H "Content-Type: application/json" -d = '{"userName":"dim@witted.net = ","password":"mybirthday"}' -k = https://plsoftware.com.au/test.html?[/SHELL = ] >>=20 >> Then putting this on your receiving page you will get the JSON string >>=20 >> [FormVariables name=3D&exact=3DF][NAME]
>> [/FormVariables] >>=20 >> Try the example above. >>=20 >>=20 >> And thanks to Tom for sparking a memory of a discussion I had with = someone a while ago about WebDNA not accepting a form value without a = name.=20 >> In this case by using the ? the name becomes the value with no value = passed. >>=20 >> Tom, you may be getting it to work on an older version =E2=80=A6 what = are you using ? >>=20 >>=20 >> Kind regards >>=20 >> Stuart Tremain >> Pharoah Lane Software >> AUSTRALIA >> webdna@plsoftware.com.au >>=20 >>=20 >>=20 >>=20 >>=20 >>=20 >>=20 >>> On 25 Apr 2019, at 16:44, Michael Davis > wrote: >>>=20 >>> Thanks Stuart, >>>=20 >>> Unfortunately, the solution can't be changing the way the post is = done. That's the way it is coming from the service that's sending it. = I see where adding a name=3Dvalue pair in your post example causes = WebDNA to find the FormVariable. It is possible FormVariables is = ignoring any header that doesn't have a value for name. Good question = for Christophe. >>>=20 >>> MD >>>=20 >>>> On Apr 24, 2019, at 8:23 PM, Stuart Tremain = > wrote: >>>>=20 >>>> I tested this on a linux server: >>>>=20 >>>> [SHELL]curl -k POST https://plsoftware.com.au/test.html = -d = userinfo=3D'{"userName":"dim@witted.net = ","password":"mybirthday=E2=80=9D}'[/SHELL] >>>>=20 >>>> Result: >>>> FormVariables >>>> userinfo =3D {"userName":"dim@witted.net = ","password":"mybirthday=E2=80=9D} >>>>=20 >>>>=20 >>>> However, this may be a better solution for you as you will not have = to parse the JSON: >>>>=20 >>>> [SHELL]curl -k POST https://plsoftware.com.au/test.html = -d username=3Ddim@witted.net = -d password=3Dmybirthday [/SHELL] >>>>=20 >>>> on the test.html page: >>>>=20 >>>> FormVariables
>>>> [FormVariables name=3D&exact=3DF][name] =3D [value]
>>>> [/FormVariables] >>>>=20 >>>> Note that I have declared each variable as a separate -d >>>>=20 >>>> The -k means for curl to ignore ssl errors. >>>>=20 >>>> Make sure that your http://localhost/json_auth.dna = is able to deal with the WebDNA. >>>>=20 >>>>=20 >>>> Kind regards >>>>=20 >>>> Stuart Tremain >>>> Pharoah Lane Software >>>> AUSTRALIA >>>> webdna@plsoftware.com.au >>>>=20 >>>>=20 >>>>=20 >>>>=20 >>>>=20 >>>>=20 >>>>=20 >>>>> On 25 Apr 2019, at 02:28, Michael Davis > wrote: >>>>>=20 >>>>> Stuart, >>>>>=20 >>>>> To avoid any browser specific issues, I'm writing the = [FormVariables] output to a file and then opening the file with a text = editor.=20 >>>>>=20 >>>>> [WriteFile file=3D[cart].txt][FormVariables][name] =3D [value] >>>>> [/FormVariables][/WriteFile] >>>>>=20 >>>>>=20 >>>>> MD >>>>>=20 >>>>> April 23, 2019 11:04 PM, "Stuart Tremain" = > wrote: >>>>> Have you have a look at the source code of the resulting page ? >>>>> Sometimes, depending on the browser, it does not display on the = rendered page. >>>>> Kind regards >>>>> Stuart Tremain >>>>> Pharoah Lane Software >>>>> AUSTRALIA >>>>> webdna@plsoftware.com.au >>>>>=20 >>>>>=20 >>>>>=20 >>>>>> On 24 Apr 2019, at 15:55, Michael Davis > wrote: >>>>>> Stuart, >>>>>>=20 >>>>>> Sorry, that was a typo/mistake on my part. I was using = [FormVariables], not [ListVariables]. Nothing in the results. I've = tested on FCGI and Server versions. >>>>>>=20 >>>>>>=20 >>>>>> MD >>>>>>=20 >>>>>>=20 >>>>>> April 23, 2019 6:44 PM, "Stuart Tremain" = > wrote: >>>>>> Try >>>>>> [FormVariables name=3D&exact=3DF][name] =3D [value]
>>>>>> [/FormVariables] >>>>>> ListVariables will only list TEXT vars etc. >>>>>> Kind regards >>>>>> Stuart Tremain >>>>>> Pharoah Lane Software >>>>>> AUSTRALIA >>>>>> webdna@plsoftware.com.au >>>>>>> On 24 Apr 2019, at 11:03, Michael Davis > wrote: >>>>>>> Hi All, >>>>>>> I'm trying to receive JSON via a post and not seeing anything in = form variables or mime headers. As a test, I post using curl like so: >>>>>>> curl -X POST -H "Content-Type: application/json" -d = '{"userName":"dim@witted.net = ","password":"mybirthday"}' = http://localhost/json_auth.dna >>>>>>> On the receiving WebDNA template: >>>>>>> [ListVariables][name]=3D[value] >>>>>>> [/ListVariables][ListMIMEHeaders][name]=3D[value] >>>>>>> [/ListMIMEHeaders] >>>>>>> I get a list of the usual MIME Headers, none include the JSON. = LIstVariables returns nothing. >>>>>>> Any way to see this data in WebDNA? >>>>>>> MD >>>>>>> --------------------------------------------------------- This = message is sent to you because you are subscribed to the mailing list = talk@webdna.us To unsubscribe, E-mail to: = talk-leave@webdna.us archives: = http://www.webdna.us/page.dna?numero=3D55 = Bug Reporting: = support@webdna.us = ------------------------------------------------= --------- This message is sent to you because you are subscribed to the = mailing list talk@webdna.us To unsubscribe, = E-mail to: talk-leave@webdna.us archives: = http://www.webdna.us/page.dna?numero=3D55 = Bug Reporting: = support@webdna.us >>>>>>=20 >>>>>> --------------------------------------------------------- This = message is sent to you because you are subscribed to the mailing list = talk@webdna.us To unsubscribe, E-mail to: = talk-leave@webdna.us archives: = http://www.webdna.us/page.dna?numero=3D55 = Bug Reporting: = support@webdna.us = ------------------------------------------------= --------- This message is sent to you because you are subscribed to the = mailing list talk@webdna.us To unsubscribe, = E-mail to: talk-leave@webdna.us archives: = http://www.webdna.us/page.dna?numero=3D55 = Bug Reporting: = support@webdna.us >>>>>=20 >>>>> --------------------------------------------------------- This = message is sent to you because you are subscribed to the mailing list = talk@webdna.us To unsubscribe, E-mail to: = talk-leave@webdna.us archives: = http://www.webdna.us/page.dna?numero=3D55 = Bug Reporting: = support@webdna.us >>>> --------------------------------------------------------- This = message is sent to you because you are subscribed to the mailing list = talk@webdna.us To unsubscribe, E-mail to: = talk-leave@webdna.us archives: = http://www.webdna.us/page.dna?numero=3D55 = Bug Reporting: = support@webdna.us >>> --------------------------------------------------------- This = message is sent to you because you are subscribed to the mailing list = talk@webdna.us To unsubscribe, E-mail to: = talk-leave@webdna.us archives: = http://www.webdna.us/page.dna?numero=3D55 = Bug Reporting: = support@webdna.us >> --------------------------------------------------------- This = message is sent to you because you are subscribed to the mailing list = talk@webdna.us To unsubscribe, E-mail to: = talk-leave@webdna.us archives: = http://www.webdna.us/page.dna?numero=3D55 = Bug Reporting: = support@webdna.us = ------------------------------------------------= --------- This message is sent to you because you are subscribed to the = mailing list talk@webdna.us To unsubscribe, = E-mail to: talk-leave@webdna.us archives: = http://www.webdna.us/page.dna?numero=3D55 = Bug Reporting: = support@webdna.us > --------------------------------------------------------- This message = is sent to you because you are subscribed to the mailing list = talk@webdna.us To unsubscribe, E-mail to: talk-leave@webdna.us archives: = http://www.webdna.us/page.dna?numero=3D55 Bug Reporting: = support@webdna.us --Apple-Mail=_51AF986F-6DDB-4530-815F-AA37CCC7EB58 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8 Thanks Stuart / Tom,

More fun with this...

Adding a ? alone for me didn't work, = but putting a value after it kicked things into gear.

curl -H "Accept: application/json" -H = "Content-type: application/json" -X POST -d '{"userName":"dim@witted.net","password":"mybirthday"}' http://localhost/wtve_auth.dna?json

This ends up reversing = the order so the contents of the JSON post are the NAME of the = formvariable and the VALUE of the formvariable is "json".

Interesting things = happen when parsing though...

[FormVariables = name=3D&exact=3DF]
[jsonstore = table=3DjsonOject][name][/jsonstore]
[search = table=3DjsonOject&neuserNamedata=3D[blank]&max=3D1][founditems]
[returnraw]HTTP/1.0 200 OK[eol]Status: = 200[eol]Content-Type: application/json[eol][eol][!]
[/!]{"userName":"[userName]","password":"[password]"}[!]
<= div class=3D"">[/!][/returnraw]
[/founditems][/search]
[/FormVariables]

That code works and spits back out the same json using the = stored values.  So far so good.  

However, when the password value in the = json object contains an ampersand, it breaks the whole thing.
I've tried various combinations of [url]'ing and am coming up = with none that work.

You can't URL the incoming JSON. JSONStore can't parse = it.

Any = suggestions?  I had no idea I was going to get stuck on such a = simple task for so long, lol.  Boo.

Also, on a side note, you cannot use = [listfields] on the magic table that JSONStore creates.

MD

On Apr 25, 2019, at 2:44 PM, Stuart Tremain = <webdna@plsoftware.com.au> wrote:

Nice idea :)


Kind regards

Stuart Tremain
Pharoah Lane Software
AUSTRALIA







On 25 Apr 2019, at 22:30, Tom Duke <tom@revolutionaries.ie> wrote:

Stuart / Michael,

Hi - it works on my CMS, but wouldn't = work on a standard WebDNA template.

So had a deeper look at it.  I = route all traffic through a single template using modrewrite, I then add = some apache server variables.

So if you do something like = this:

.htaccess
RewriteEngine = On
RewriteRule ^jsonpost/(.+)$ = /json-post.tmpl?dummyName=3D [L]

json-post.tmpl
FormVariables:
[formvariables][name]
[/formvariables]

Then = set your webhook / receiving URL to


You'll see the data.  Looks like = you have to add at least one name:value pair.  Not sure if this is = an apache thing or a WebDNA thing, I suspect the latter.

- Tom




=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D
Digital Revolutionaries
1st Floor, = Castleriver House
14-15 Parliament Street
Temple Bar,Dublin 2
Ireland
----------------------------------------------
[t]: + 353 1 4403907
[e]: <mailto:tom@revolutionaries.ie>
[w]: <http://www.revolutionaries.ie/>
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=


On Thu, 25 Apr 2019 at 12:51, Stuart Tremain <webdna@plsoftware.com.au> wrote:
Hi = Michael

Are you able = to specify the url to which the JSON needs to be posted ?

I just tried putting a ? = at the end of the url eg: /test.html?

[SHELL]curl -X POST -H "Content-Type: = application/json" -d '{"userName":"dim@witted.net","password":"mybirthday"}'= -k https://plsoftware.com.au/test.html?[/SHELL]

Then putting this on = your receiving page you will get the JSON string

[FormVariables = name=3D&exact=3DF][NAME]<br>
[/FormVariables]

Try the example above.


And = thanks to Tom for sparking a memory of a discussion I had with someone a = while ago about WebDNA not accepting a form value without a = name. 
In this case by using the ? the name = becomes the value with no value passed.

Tom, you may be getting it to work on = an older version =E2=80=A6 what are you using ?


Kind regards

Stuart Tremain
Pharoah Lane Software
AUSTRALIA







On 25 Apr 2019, at 16:44, Michael Davis <admin@network13.net> wrote:

Thanks Stuart,

Unfortunately, the solution can't be changing the way the = post is done.  That's the way it is coming from the service that's = sending it.  I see where adding a name=3Dvalue pair in your post = example causes WebDNA to find the FormVariable.  It is possible = FormVariables is ignoring any header that doesn't have a value for = name.  Good question for Christophe.

MD

On Apr = 24, 2019, at 8:23 PM, Stuart Tremain <webdna@plsoftware.com.au> wrote:

I = tested this on a linux server:

[SHELL]curl -k POST https://plsoftware.com.au/test.html -d = userinfo=3D'{"userName":"dim@witted.net","password":"mybirthday=E2=80=9D}'[/SHELL]

Result:
FormVariables
userinfo =3D {"userName":"dim@witted.net","password":"mybirthday=E2=80=9D}


However, this may be a better solution = for you as you will not have to parse the JSON:

[SHELL]curl -k POST https://plsoftware.com.au/test.html -d username=3Ddim@witted.net -d password=3Dmybirthday = [/SHELL]

on = the test.html page:

FormVariables<br>
[FormVariables name=3D&exact=3DF][name] =3D = [value]<br>
[/FormVariables]

Note that I have = declared each variable  as a separate -d

The -k means for curl to ignore ssl = errors.

Make = sure that your http://localhost/json_auth.dna is = able to deal with the WebDNA.


Kind regards

Stuart Tremain
Pharoah Lane Software
AUSTRALIA







On 25 Apr 2019, at 02:28, Michael Davis <admin@network13.net> wrote:

Stuart,

To avoid any browser = specific issues, I'm writing the [FormVariables] output to a file and = then opening the file with a text editor.

[WriteFile file=3D[cart].txt][FormVariables][name] =3D = [value]
[/FormVariables][/WriteFile]


MD

April 23, 2019 = 11:04 PM, "Stuart Tremain" <webdna@plsoftware.com.au> wrote:
=
Have you have a look at the source code of the resulting page = ?
Sometimes, depending on the = browser, it does not display on the rendered page.
Kind regards
Stuart Tremain
Pharoah Lane Software
AUSTRALIA



On 24 Apr 2019, at 15:55, Michael Davis = <admin@network13.net> wrote:
=
Stuart,

Sorry, that was a = typo/mistake on my part. I was using [FormVariables], not = [ListVariables]. Nothing in the results. I've tested on FCGI and Server = versions.


MD

April 23, 2019 6:44 PM, "Stuart Tremain" = <webdna@plsoftware.com.au> wrote:
Try
[FormVariables name=3D&exact=3DF][name] = =3D [value]<br>
[/FormVariables]
ListVariables will only list TEXT vars etc.
Kind = regards
Stuart = Tremain
Pharoah Lane = Software
AUSTRALIA
=
=
On 24 Apr 2019, at = 11:03, Michael Davis <admin@network13.net> wrote:
=
Hi All,
I'm trying to = receive JSON via a post and not seeing anything in form variables or = mime headers. As a test, I post using curl like so:
curl -X = POST -H "Content-Type: application/json" -d '{"userName":"dim@witted.net","password":"mybirthday"}' http://localhost/json_auth.dna
On the = receiving WebDNA template:
=
[ListVariables][name]=3D[value]
[/ListVariables][ListMIMEHeaders][name]=3D[value]
[/ListMIMEHeaders]
I get a list of the usual MIME Headers, none include the = JSON. LIstVariables returns nothing.
Any way to see this data in WebDNA?
MD
=
--------------------------------------------------------- This = message is sent to you because you are subscribed to the mailing list talk@webdna.us To unsubscribe, E-mail to: talk-leave@webdna.us archives: http://www.webdna.us/page.dna?numero=3D55 Bug Reporting: = support@webdna.us
= --------------------------------------------------------- This message = is sent to you because you are subscribed to the mailing list talk@webdna.us To unsubscribe, E-mail to: talk-leave@webdna.us archives: http://www.webdna.us/page.dna?numero=3D55 Bug Reporting: = support@webdna.us


=
--------------------------------------------------------- = This message is sent to you because you are subscribed to the mailing = list talk@webdna.us To unsubscribe, E-mail to: talk-leave@webdna.us archives: http://www.webdna.us/page.dna?numero=3D55 Bug Reporting: = support@webdna.us
= --------------------------------------------------------- This message = is sent to you because you are subscribed to the mailing list talk@webdna.us To unsubscribe, E-mail = to: talk-leave@webdna.us archives: http://www.webdna.us/page.dna?numero=3D55 Bug Reporting: = support@webdna.us =


--------------------------------------------------------- This message is sent to you because you are subscribed to the mailing list talk@webdna.us To unsubscribe, E-mail to: talk-leave@webdna.us archives: http://www.webdna.us/page.dna?numero=3D55= Bug Reporting: support@webdna.us

--------------------------------------------------------- This message is sent to you because you are subscribed to the mailing list talk@webdna.us To unsubscribe, E-mail to: talk-leave@webdna.us archives: http://www.webdna.us/page.dna?numero=3D55= Bug Reporting: support@webdna.us

--------------------------------------------------------- This message is sent to you because you are subscribed to the mailing list talk@webdna.us To unsubscribe, E-mail to: talk-leave@webdna.us archives: http://www.webdna.us/page.dna?numero=3D55= Bug Reporting: support@webdna.us

--------------------------------------------------------- This message is sent to you because you are subscribed to the mailing list talk@webdna.us To unsubscribe, E-mail to: talk-leave@webdna.us archives: http://www.webdna.us/page.dna?numero=3D55= Bug Reporting: support@webdna.us
--------------------------------------------------------- This message is sent to you because you are subscribed to the mailing list talk@webdna.us To unsubscribe, E-mail to: talk-leave@webdna.us archives: http://www.webdna.us/page.dna?numero=3D55 Bug Reporting: support@webdna.us

--------------------------------------------------------- This message is sent to you because you are subscribed to the mailing list talk@webdna.us To unsubscribe, E-mail to: talk-leave@webdna.us archives: http://www.webdna.us/page.dna?numero=3D55 Bug Reporting: support@webdna.us
= --------------------------------------------------------- This message is sent to you because you are subscribed to the mailing list talk@webdna.us To unsubscribe, E-mail to: talk-leave@webdna.us archives: http://www.webdna.us/page.dna?numero=3D55 Bug Reporting: support@webdna.us --Apple-Mail=_51AF986F-6DDB-4530-815F-AA37CCC7EB58-- . Associated Messages, from the most recent to the oldest:

    
  1. Re: [WebDNA] Receive JSON POST (Stuart Tremain 2019)
  2. Re: [WebDNA] Receive JSON POST (Michael Davis 2019)
  3. Re: [WebDNA] Receive JSON POST (Stuart Tremain 2019)
  4. Re: [WebDNA] Receive JSON POST (Michael Davis 2019)
  5. Re: [WebDNA] Receive JSON POST (Stuart Tremain 2019)
  6. Re: [WebDNA] Receive JSON POST (Tom Duke 2019)
  7. Re: [WebDNA] Receive JSON POST (Tom Duke 2019)
  8. Re: [WebDNA] Receive JSON POST (Stuart Tremain 2019)
  9. Re: [WebDNA] Receive JSON POST (Stuart Tremain 2019)
  10. Re: [WebDNA] Receive JSON POST (Tom Duke 2019)
  11. Re: [WebDNA] Receive JSON POST (Stuart Tremain 2019)
  12. Re: [WebDNA] Receive JSON POST (Michael Davis 2019)
  13. Re: [WebDNA] Receive JSON POST (Stuart Tremain 2019)
  14. Re: [WebDNA] Receive JSON POST ("Michael Davis" 2019)
  15. Re: [WebDNA] Receive JSON POST (Stuart Tremain 2019)
  16. Re: [WebDNA] Receive JSON POST ("Michael Davis" 2019)
  17. Re: [WebDNA] Receive JSON POST (Stuart Tremain 2019)
  18. [WebDNA] Receive JSON POST (Michael Davis 2019)
2190 --Apple-Mail=_51AF986F-6DDB-4530-815F-AA37CCC7EB58 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 Thanks Stuart / Tom, More fun with this... Adding a ? alone for me didn't work, but putting a value after it kicked = things into gear. curl -H "Accept: application/json" -H "Content-type: application/json" = -X POST -d '{"userName":"dim@witted.net","password":"mybirthday"}' = http://localhost/wtve_auth.dna?json This ends up reversing the order so the contents of the JSON post are = the NAME of the formvariable and the VALUE of the formvariable is = "json". Interesting things happen when parsing though... [FormVariables name=3D&exact=3DF] [jsonstore table=3DjsonOject][name][/jsonstore] [search table=3DjsonOject&neuserNamedata=3D[blank]&max=3D1][founditems] [returnraw]HTTP/1.0 200 OK[eol]Status: 200[eol]Content-Type: = application/json[eol][eol][!] [/!]{"userName":"[username]","password":"[password]"}[!] [/!][/returnraw] [/founditems][/search] [/FormVariables] That code works and spits back out the same json using the stored = values. So far so good. =20 However, when the password value in the json object contains an = ampersand, it breaks the whole thing. I've tried various combinations of [url]'ing and am coming up with none = that work. You can't URL the incoming JSON. JSONStore can't parse it. Any suggestions? I had no idea I was going to get stuck on such a = simple task for so long, lol. Boo. Also, on a side note, you cannot use [listfields] on the magic table = that JSONStore creates. MD > On Apr 25, 2019, at 2:44 PM, Stuart Tremain = wrote: >=20 > Nice idea :) >=20 >=20 > Kind regards >=20 > Stuart Tremain > Pharoah Lane Software > AUSTRALIA > webdna@plsoftware.com.au >=20 >=20 >=20 >=20 >=20 >=20 >=20 >> On 25 Apr 2019, at 22:30, Tom Duke > wrote: >>=20 >> Stuart / Michael, >>=20 >> Hi - it works on my CMS, but wouldn't work on a standard WebDNA = template. >>=20 >> So had a deeper look at it. I route all traffic through a single = template using modrewrite, I then add some apache server variables. >>=20 >> So if you do something like this: >>=20 >> .htaccess >> RewriteEngine On >> RewriteRule ^jsonpost/(.+)$ /json-post.tmpl?dummyName=3D [L] >>=20 >> json-post.tmpl >> FormVariables: >> [formvariables][name] >> [/formvariables] >>=20 >> Then set your webhook / receiving URL to >>=20 >> https://your-domain/jsonpost/anything = >>=20 >> You'll see the data. Looks like you have to add at least one = name:value pair. Not sure if this is an apache thing or a WebDNA thing, = I suspect the latter. >>=20 >> - Tom >>=20 >>=20 >>=20 >>=20 >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> Digital Revolutionaries >> 1st Floor, Castleriver House >> 14-15 Parliament Street >> Temple Bar,Dublin 2 >> Ireland >> ---------------------------------------------- >> [t]: + 353 1 4403907 >> [e]: > >> [w]: > >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >>=20 >>=20 >> On Thu, 25 Apr 2019 at 12:51, Stuart Tremain = > wrote: >> Hi Michael >>=20 >> Are you able to specify the url to which the JSON needs to be posted = ? >>=20 >> I just tried putting a ? at the end of the url eg: /test.html? >>=20 >> [shell]curl -X POST -H "Content-Type: application/json" -d = '{"userName":"dim@witted.net = ","password":"mybirthday"}' -k = https://plsoftware.com.au/test.html?[/SHELL = ] >>=20 >> Then putting this on your receiving page you will get the JSON string >>=20 >> [FormVariables name=3D&exact=3DF][NAME]
>> [/FormVariables] >>=20 >> Try the example above. >>=20 >>=20 >> And thanks to Tom for sparking a memory of a discussion I had with = someone a while ago about WebDNA not accepting a form value without a = name.=20 >> In this case by using the ? the name becomes the value with no value = passed. >>=20 >> Tom, you may be getting it to work on an older version =E2=80=A6 what = are you using ? >>=20 >>=20 >> Kind regards >>=20 >> Stuart Tremain >> Pharoah Lane Software >> AUSTRALIA >> webdna@plsoftware.com.au >>=20 >>=20 >>=20 >>=20 >>=20 >>=20 >>=20 >>> On 25 Apr 2019, at 16:44, Michael Davis > wrote: >>>=20 >>> Thanks Stuart, >>>=20 >>> Unfortunately, the solution can't be changing the way the post is = done. That's the way it is coming from the service that's sending it. = I see where adding a name=3Dvalue pair in your post example causes = WebDNA to find the FormVariable. It is possible FormVariables is = ignoring any header that doesn't have a value for name. Good question = for Christophe. >>>=20 >>> MD >>>=20 >>>> On Apr 24, 2019, at 8:23 PM, Stuart Tremain = > wrote: >>>>=20 >>>> I tested this on a linux server: >>>>=20 >>>> [shell]curl -k POST https://plsoftware.com.au/test.html = -d = userinfo=3D'{"userName":"dim@witted.net = ","password":"mybirthday=E2=80=9D}'[/SHELL] >>>>=20 >>>> Result: >>>> FormVariables >>>> userinfo =3D {"userName":"dim@witted.net = ","password":"mybirthday=E2=80=9D} >>>>=20 >>>>=20 >>>> However, this may be a better solution for you as you will not have = to parse the JSON: >>>>=20 >>>> [shell]curl -k POST https://plsoftware.com.au/test.html = -d username=3Ddim@witted.net = -d password=3Dmybirthday [/SHELL] >>>>=20 >>>> on the test.html page: >>>>=20 >>>> FormVariables
>>>> [FormVariables name=3D&exact=3DF][name] =3D [value]
>>>> [/FormVariables] >>>>=20 >>>> Note that I have declared each variable as a separate -d >>>>=20 >>>> The -k means for curl to ignore ssl errors. >>>>=20 >>>> Make sure that your http://localhost/json_auth.dna = is able to deal with the WebDNA. >>>>=20 >>>>=20 >>>> Kind regards >>>>=20 >>>> Stuart Tremain >>>> Pharoah Lane Software >>>> AUSTRALIA >>>> webdna@plsoftware.com.au >>>>=20 >>>>=20 >>>>=20 >>>>=20 >>>>=20 >>>>=20 >>>>=20 >>>>> On 25 Apr 2019, at 02:28, Michael Davis > wrote: >>>>>=20 >>>>> Stuart, >>>>>=20 >>>>> To avoid any browser specific issues, I'm writing the = [formvariables] output to a file and then opening the file with a text = editor.=20 >>>>>=20 >>>>> [WriteFile file=3D[cart].txt][formvariables][name] =3D [value] >>>>> [/FormVariables][/WriteFile] >>>>>=20 >>>>>=20 >>>>> MD >>>>>=20 >>>>> April 23, 2019 11:04 PM, "Stuart Tremain" = > wrote: >>>>> Have you have a look at the source code of the resulting page ? >>>>> Sometimes, depending on the browser, it does not display on the = rendered page. >>>>> Kind regards >>>>> Stuart Tremain >>>>> Pharoah Lane Software >>>>> AUSTRALIA >>>>> webdna@plsoftware.com.au >>>>>=20 >>>>>=20 >>>>>=20 >>>>>> On 24 Apr 2019, at 15:55, Michael Davis > wrote: >>>>>> Stuart, >>>>>>=20 >>>>>> Sorry, that was a typo/mistake on my part. I was using = [formvariables], not [listvariables]. Nothing in the results. I've = tested on FCGI and Server versions. >>>>>>=20 >>>>>>=20 >>>>>> MD >>>>>>=20 >>>>>>=20 >>>>>> April 23, 2019 6:44 PM, "Stuart Tremain" = > wrote: >>>>>> Try >>>>>> [FormVariables name=3D&exact=3DF][name] =3D [value]
>>>>>> [/FormVariables] >>>>>> ListVariables will only list TEXT vars etc. >>>>>> Kind regards >>>>>> Stuart Tremain >>>>>> Pharoah Lane Software >>>>>> AUSTRALIA >>>>>> webdna@plsoftware.com.au >>>>>>> On 24 Apr 2019, at 11:03, Michael Davis > wrote: >>>>>>> Hi All, >>>>>>> I'm trying to receive JSON via a post and not seeing anything in = form variables or mime headers. As a test, I post using curl like so: >>>>>>> curl -X POST -H "Content-Type: application/json" -d = '{"userName":"dim@witted.net = ","password":"mybirthday"}' = http://localhost/json_auth.dna >>>>>>> On the receiving WebDNA template: >>>>>>> [listvariables][name]=3D[value] >>>>>>> [/ListVariables][listmimeheaders][name]=3D[value] >>>>>>> [/ListMIMEHeaders] >>>>>>> I get a list of the usual MIME Headers, none include the JSON. = LIstVariables returns nothing. >>>>>>> Any way to see this data in WebDNA? >>>>>>> MD >>>>>>> --------------------------------------------------------- This = message is sent to you because you are subscribed to the mailing list = talk@webdna.us To unsubscribe, E-mail to: = talk-leave@webdna.us archives: = http://www.webdna.us/page.dna?numero=3D55 = Bug Reporting: = support@webdna.us = ------------------------------------------------= --------- This message is sent to you because you are subscribed to the = mailing list talk@webdna.us To unsubscribe, = E-mail to: talk-leave@webdna.us archives: = http://www.webdna.us/page.dna?numero=3D55 = Bug Reporting: = support@webdna.us >>>>>>=20 >>>>>> --------------------------------------------------------- This = message is sent to you because you are subscribed to the mailing list = talk@webdna.us To unsubscribe, E-mail to: = talk-leave@webdna.us archives: = http://www.webdna.us/page.dna?numero=3D55 = Bug Reporting: = support@webdna.us = ------------------------------------------------= --------- This message is sent to you because you are subscribed to the = mailing list talk@webdna.us To unsubscribe, = E-mail to: talk-leave@webdna.us archives: = http://www.webdna.us/page.dna?numero=3D55 = Bug Reporting: = support@webdna.us >>>>>=20 >>>>> --------------------------------------------------------- This = message is sent to you because you are subscribed to the mailing list = talk@webdna.us To unsubscribe, E-mail to: = talk-leave@webdna.us archives: = http://www.webdna.us/page.dna?numero=3D55 = Bug Reporting: = support@webdna.us >>>> --------------------------------------------------------- This = message is sent to you because you are subscribed to the mailing list = talk@webdna.us To unsubscribe, E-mail to: = talk-leave@webdna.us archives: = http://www.webdna.us/page.dna?numero=3D55 = Bug Reporting: = support@webdna.us >>> --------------------------------------------------------- This = message is sent to you because you are subscribed to the mailing list = talk@webdna.us To unsubscribe, E-mail to: = talk-leave@webdna.us archives: = http://www.webdna.us/page.dna?numero=3D55 = Bug Reporting: = support@webdna.us >> --------------------------------------------------------- This = message is sent to you because you are subscribed to the mailing list = talk@webdna.us To unsubscribe, E-mail to: = talk-leave@webdna.us archives: = http://www.webdna.us/page.dna?numero=3D55 = Bug Reporting: = support@webdna.us = ------------------------------------------------= --------- This message is sent to you because you are subscribed to the = mailing list talk@webdna.us To unsubscribe, = E-mail to: talk-leave@webdna.us archives: = http://www.webdna.us/page.dna?numero=3D55 = Bug Reporting: = support@webdna.us > --------------------------------------------------------- This message = is sent to you because you are subscribed to the mailing list = talk@webdna.us To unsubscribe, E-mail to: talk-leave@webdna.us archives: = http://www.webdna.us/page.dna?numero=3D55 Bug Reporting: = support@webdna.us --Apple-Mail=_51AF986F-6DDB-4530-815F-AA37CCC7EB58 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8 Thanks Stuart / Tom,

More fun with this...

Adding a ? alone for me didn't work, = but putting a value after it kicked things into gear.

curl -H "Accept: application/json" -H = "Content-type: application/json" -X POST -d '{"userName":"dim@witted.net","password":"mybirthday"}' http://localhost/wtve_auth.dna?json

This ends up reversing = the order so the contents of the JSON post are the NAME of the = formvariable and the VALUE of the formvariable is "json".

Interesting things = happen when parsing though...

[FormVariables = name=3D&exact=3DF]
[jsonstore = table=3DjsonOject][name][/jsonstore]
[search = table=3DjsonOject&neuserNamedata=3D[blank]&max=3D1][founditems]
[returnraw]HTTP/1.0 200 OK[eol]Status: = 200[eol]Content-Type: application/json[eol][eol][!]
[/!]{"userName":"[username]","password":"[password]"}[!]
<= div class=3D"">[/!][/returnraw]
[/founditems][/search]
[/FormVariables]

That code works and spits back out the same json using the = stored values.  So far so good.  

However, when the password value in the = json object contains an ampersand, it breaks the whole thing.
I've tried various combinations of [url]'ing and am coming up = with none that work.

You can't URL the incoming JSON. JSONStore can't parse = it.

Any = suggestions?  I had no idea I was going to get stuck on such a = simple task for so long, lol.  Boo.

Also, on a side note, you cannot use = [listfields] on the magic table that JSONStore creates.

MD

On Apr 25, 2019, at 2:44 PM, Stuart Tremain = <webdna@plsoftware.com.au> wrote:

Nice idea :)


Kind regards

Stuart Tremain
Pharoah Lane Software
AUSTRALIA







On 25 Apr 2019, at 22:30, Tom Duke <tom@revolutionaries.ie> wrote:

Stuart / Michael,

Hi - it works on my CMS, but wouldn't = work on a standard WebDNA template.

So had a deeper look at it.  I = route all traffic through a single template using modrewrite, I then add = some apache server variables.

So if you do something like = this:

.htaccess
RewriteEngine = On
RewriteRule ^jsonpost/(.+)$ = /json-post.tmpl?dummyName=3D [L]

json-post.tmpl
FormVariables:
[/formvariables]

Then = set your webhook / receiving URL to


You'll see the data.  Looks like = you have to add at least one name:value pair.  Not sure if this is = an apache thing or a WebDNA thing, I suspect the latter.

- Tom




=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D
Digital Revolutionaries
1st Floor, = Castleriver House
14-15 Parliament Street
Temple Bar,Dublin 2
Ireland
----------------------------------------------
[t]: + 353 1 4403907
[e]: <mailto:tom@revolutionaries.ie>
[w]: <http://www.revolutionaries.ie/>
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=


On Thu, 25 Apr 2019 at 12:51, Stuart Tremain <webdna@plsoftware.com.au> wrote:
Hi = Michael

Are you able = to specify the url to which the JSON needs to be posted ?

I just tried putting a ? = at the end of the url eg: /test.html?

[shell]curl -X POST -H "Content-Type: = application/json" -d '{"userName":"dim@witted.net","password":"mybirthday"}'= -k https://plsoftware.com.au/test.html?[/SHELL]

Then putting this on = your receiving page you will get the JSON string

[FormVariables = name=3D&exact=3DF][NAME]<br>
[/FormVariables]

Try the example above.


And = thanks to Tom for sparking a memory of a discussion I had with someone a = while ago about WebDNA not accepting a form value without a = name. 
In this case by using the ? the name = becomes the value with no value passed.

Tom, you may be getting it to work on = an older version =E2=80=A6 what are you using ?


Kind regards

Stuart Tremain
Pharoah Lane Software
AUSTRALIA







On 25 Apr 2019, at 16:44, Michael Davis <admin@network13.net> wrote:

Thanks Stuart,

Unfortunately, the solution can't be changing the way the = post is done.  That's the way it is coming from the service that's = sending it.  I see where adding a name=3Dvalue pair in your post = example causes WebDNA to find the FormVariable.  It is possible = FormVariables is ignoring any header that doesn't have a value for = name.  Good question for Christophe.

MD

On Apr = 24, 2019, at 8:23 PM, Stuart Tremain <webdna@plsoftware.com.au> wrote:

I = tested this on a linux server:

[shell]curl -k POST https://plsoftware.com.au/test.html -d = userinfo=3D'{"userName":"dim@witted.net","password":"mybirthday=E2=80=9D}'[/SHELL]

Result:
FormVariables
userinfo =3D {"userName":"dim@witted.net","password":"mybirthday=E2=80=9D}


However, this may be a better solution = for you as you will not have to parse the JSON:

[shell]curl -k POST https://plsoftware.com.au/test.html -d username=3Ddim@witted.net -d password=3Dmybirthday = [/SHELL]

on = the test.html page:

FormVariables<br>
[FormVariables name=3D&exact=3DF][name] =3D = [value]<br>
[/FormVariables]

Note that I have = declared each variable  as a separate -d

The -k means for curl to ignore ssl = errors.

Make = sure that your http://localhost/json_auth.dna is = able to deal with the WebDNA.


Kind regards

Stuart Tremain
Pharoah Lane Software
AUSTRALIA







On 25 Apr 2019, at 02:28, Michael Davis <admin@network13.net> wrote:

Stuart,

To avoid any browser = specific issues, I'm writing the [formvariables] output to a file and = then opening the file with a text editor.

[WriteFile file=3D[cart].txt][formvariables][name] =3D = [value]
[/FormVariables][/WriteFile]


MD

April 23, 2019 = 11:04 PM, "Stuart Tremain" <webdna@plsoftware.com.au> wrote:
=
Have you have a look at the source code of the resulting page = ?
Sometimes, depending on the = browser, it does not display on the rendered page.
Kind regards
Stuart Tremain
Pharoah Lane Software
AUSTRALIA



On 24 Apr 2019, at 15:55, Michael Davis = <admin@network13.net> wrote:
=
Stuart,

Sorry, that was a = typo/mistake on my part. I was using [formvariables], not = [listvariables]. Nothing in the results. I've tested on FCGI and Server = versions.


MD

April 23, 2019 6:44 PM, "Stuart Tremain" = <webdna@plsoftware.com.au> wrote:
Try
[FormVariables name=3D&exact=3DF][name] = =3D [value]<br>
[/FormVariables]
ListVariables will only list TEXT vars etc.
Kind = regards
Stuart = Tremain
Pharoah Lane = Software
AUSTRALIA
=
=
On 24 Apr 2019, at = 11:03, Michael Davis <admin@network13.net> wrote:
=
Hi All,
I'm trying to = receive JSON via a post and not seeing anything in form variables or = mime headers. As a test, I post using curl like so:
curl -X = POST -H "Content-Type: application/json" -d '{"userName":"dim@witted.net","password":"mybirthday"}' http://localhost/json_auth.dna
On the = receiving WebDNA template:
=
[listvariables][name]=3D[value]
[/ListVariables][listmimeheaders][name]=3D[value]
[/ListMIMEHeaders]
I get a list of the usual MIME Headers, none include the = JSON. LIstVariables returns nothing.
Any way to see this data in WebDNA?
MD
=
--------------------------------------------------------- This = message is sent to you because you are subscribed to the mailing list talk@webdna.us To unsubscribe, E-mail to: talk-leave@webdna.us archives: http://www.webdna.us/page.dna?numero=3D55 Bug Reporting: = support@webdna.us
= --------------------------------------------------------- This message = is sent to you because you are subscribed to the mailing list talk@webdna.us To unsubscribe, E-mail to: talk-leave@webdna.us archives: http://www.webdna.us/page.dna?numero=3D55 Bug Reporting: = support@webdna.us


=
--------------------------------------------------------- = This message is sent to you because you are subscribed to the mailing = list talk@webdna.us To unsubscribe, E-mail to: talk-leave@webdna.us archives: http://www.webdna.us/page.dna?numero=3D55 Bug Reporting: = support@webdna.us
= --------------------------------------------------------- This message = is sent to you because you are subscribed to the mailing list talk@webdna.us To unsubscribe, E-mail = to: talk-leave@webdna.us archives: http://www.webdna.us/page.dna?numero=3D55 Bug Reporting: = support@webdna.us =


--------------------------------------------------------- This message is sent to you because you are subscribed to the mailing list talk@webdna.us To unsubscribe, E-mail to: talk-leave@webdna.us archives: http://www.webdna.us/page.dna?numero=3D55= Bug Reporting: support@webdna.us

--------------------------------------------------------- This message is sent to you because you are subscribed to the mailing list talk@webdna.us To unsubscribe, E-mail to: talk-leave@webdna.us archives: http://www.webdna.us/page.dna?numero=3D55= Bug Reporting: support@webdna.us

--------------------------------------------------------- This message is sent to you because you are subscribed to the mailing list talk@webdna.us To unsubscribe, E-mail to: talk-leave@webdna.us archives: http://www.webdna.us/page.dna?numero=3D55= Bug Reporting: support@webdna.us

--------------------------------------------------------- This message is sent to you because you are subscribed to the mailing list talk@webdna.us To unsubscribe, E-mail to: talk-leave@webdna.us archives: http://www.webdna.us/page.dna?numero=3D55= Bug Reporting: support@webdna.us
--------------------------------------------------------- This message is sent to you because you are subscribed to the mailing list talk@webdna.us To unsubscribe, E-mail to: talk-leave@webdna.us archives: http://www.webdna.us/page.dna?numero=3D55 Bug Reporting: support@webdna.us
--------------------------------------------------------- This message is sent to you because you are subscribed to the mailing list talk@webdna.us To unsubscribe, E-mail to: talk-leave@webdna.us archives: http://www.webdna.us/page.dna?numero=3D55 Bug Reporting: support@webdna.us
= --------------------------------------------------------- This message is sent to you because you are subscribed to the mailing list talk@webdna.us To unsubscribe, E-mail to: talk-leave@webdna.us archives: http://www.webdna.us/page.dna?numero=3D55 Bug Reporting: support@webdna.us --Apple-Mail=_51AF986F-6DDB-4530-815F-AA37CCC7EB58-- . Michael Davis

DOWNLOAD WEBDNA NOW!

Top Articles:

Talk List

The WebDNA community talk-list is the best place to get some help: several hundred extremely proficient programmers with an excellent knowledge of WebDNA and an excellent spirit will deliver all the tips and tricks you can imagine...

Related Readings:

[lineitems] and [writefile] (1998) Multiple prices (1997) An easy one (1999) WC2b15 File Corruption (1997) WebCatalog Mac and cgi-bin (WebSTAR 2.0) (1997) Sorry WebDNA server not running (2002) Running 2 two WebCatalog.acgi's (1996) WebCat2b15MacPlugin - showing [math] (1997) Card clearance, problems - solutions? (1997) WC on Mac OS X or Mac OS X Server 2.x (2001) taxTotal, grandTotal (1997) Re2: frames & carts (1997) Encrypting Credit Card Numbers (2004) Almost a there but..bye bye NetCloak (1997) PCS Frames (1997) Problems appending to database (1997) [WebDNA] PCI Vulnerability testing (2009) WebCommerce: Folder organization ? (1997) SiteEdit NewFile.html ? (1997) [WebDNA] How to get the domain name? (2009)