Dear Maksym,

one can access the content of a PUT/POST request via "ns_getcontent".
Just get the content and parse content e.g. into a dict.

-gn

============================
if {[ns_conn method] in {PUT POST}
    && [ns_set iget [ns_conn headers] Content-Type] eq "application/json"
} {
    package req json

    set dict [json::json2dict [ns_getcontent -as_file false]]
    ns_return 200 text/plain $dict\n
} else {
    ad_return_complaint 1 "unsupported HTTP method: [ns_conn method]"
}
============================

Test:
curl --header "Content-Type: application/json" --request POST --data 
'{"username":"xyz","password":"xyz"}'http://localhost:8100/json-receiver.tcl




On 30.04.21 19:14, Maksym Zinchenko wrote:
Hello, maybe it's obvious but I'm a little bit stuck in here.
When I'm doing POST requests to Naviserver with Content-Type: application/x-www-form-urlencoded, I can use [ns_conn files] [ns_getform] to access data. How do I access Content-Type: application/json requests? For example if I'm sending JSON like that:
{
    "action": "list",
    "path": "/public_html"
}
How do I get those values? What about Content-Type: application/xml or text/plain|?|
_______________________________________________
naviserver-devel mailing list
naviserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/naviserver-devel

Reply via email to