Hello Kyle,
For testing, I have started a fake server with:
ncat -l -p 8080
And have sent the command to it:
curl -X PUT -d '"New-Hostname"' \
https://urldefense.us/v3/__http://fakeserver:8080/ioc/net/hostname/value.json__;!!G_uCfscf7eWS!fPjuCGLT1g3xZP4zVp3oduVQRQQ66fh9LRXE72FJ7JbyP5_eMGtWZZb-uDS34mbST73dkjiuxG03esEcZ6ZZ1FwjRw$
What I see in ncat is:
PUT /ioc/net/hostname/value.json HTTP/1.1
Host: fakeserver:8080
User-Agent: curl/7.61.1
Accept: */*
Content-Length: 14
Content-Type: application/x-www-form-urlencoded
"New-Hostname"[no newline!]
I guess some lines may be optional, but one thing is important:
There is an empty line between header and content. Be aware that your
OutTerminator is only added at the end or out commands (where curl did not
bother to add any terminator).
Thus I suggest you either add the empty line manually:
set_host{
out 'PUT /io/net/hostname/value.json HTTP/1.1\r\n\r\n"New-Hostname"';
}
Or alternatively use 2 out commands, each will be terminated with CR LF CR LF.
set_host{ out 'PUT /io/net/hostname/value.json HTTP/1.1';
out '"New-Hostname"';}
If that is still not sufficient, try to add some of the other header lines, but
have an empty line only directly before the content.
Dirk
On Wed, 2024-09-11 at 14:26 +0000, Zimoch Dirk via Tech-talk wrote:
> Hi Kyle,
>
> I will have a look...
>
> Dirk
>
> On Wed, 2024-09-11 at 14:19 +0000, Kyle Hesse via Tech-talk wrote:
> > Hello,
> >
> > I'm working with a Pyramid FX4 Device. I'd like to use HTTP requests to communicate using StreamDevice. I'm having success using GETs, however I'm running into issues with the PUTs.
> >
> > The programmer manual states to do the following:
> >
> > PUT /io/net/hostname.json HTTP/1.1
> >
> > "New-Hostname"
> >
> > Below I've listed my configuration as well as examples for the GET and PUT requests for getting and setting the hostname.
> >
> > Any help to properly form the HTTP PUT request would be greatly appreciated.
> >
> > Thanks,
> >
> > Kyle
> >
> >
> >
> > Configuration:
> >
> > drvAsynIPPortConfigure("fx4", "129.57.203.137:80 HTTP", 0, 0, 0)
> >
> > OutTerminator = CR LF CR LF;
> >
> > PUT Request Example (Unsuccessful):
> >
> > set_host{
> > out 'PUT /io/net/hostname/value.json HTTP/1.1 "New-Hostname"';
> > }
> >
> > Get Request (Successful):
> >
> > hostname {
> > out "GET /io/net/hostname/value.json HTTP/1.1";
> > in "%*182c%[_a-zA-Z0-9]%*2c";
> > }
> >
> >
> >
> > PS
> >
> > I am able to use curl from command line to successfully set the hostname.
> >
> > curl -X PUT -d '"New-Hostname"' https://urldefense.us/v3/__http://129.57.203.137/io/net/hostname/value.json__;!!G_uCfscf7eWS!f01ayFSJNsXqAAqGmOKGPXH4SuSPR_8UAlf8IXiWd-JuQtDWoFGjoDqT-FV3qjx0n8nkLhDvsD1Dx35nhsUmiKf7Ug$
> >
> >
- Replies:
- Re: HTTP PUT Request - StreamDevice Kyle Hesse via Tech-talk
- References:
- HTTP PUT Request - StreamDevice Kyle Hesse via Tech-talk
- Re: HTTP PUT Request - StreamDevice Zimoch Dirk via Tech-talk
- Navigate by Date:
- Prev:
Re: HTTP PUT Request - StreamDevice Zimoch Dirk via Tech-talk
- Next:
Re: HTTP PUT Request - StreamDevice Kyle Hesse via Tech-talk
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
<2024>
2025
- Navigate by Thread:
- Prev:
Re: HTTP PUT Request - StreamDevice Zimoch Dirk via Tech-talk
- Next:
Re: HTTP PUT Request - StreamDevice Kyle Hesse via Tech-talk
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
<2024>
2025
|