Are you sure it didn't work?
LoginUserNameResult got two IDs...
You could use PHP to capture the POST and output it for debugging.
Use a URL to a temporary php page. Example "httppost://[FM Server IP]/postoutput.php"
Your postoutput.php should contain something like:
That will output the post name=values array.
If you are using FileMaker Server with PHP deployed you can put the php file in FileMaker Server/HTTPServer/htdocs/ directory. Don't forget to make sure permissions are set so everyone can read and execute.
Thanks for the suggestion, Lance.
The server with the web service is an IIS server running it for Oracle IPM. When I made a successful request using 360 Works' client, I tried looking at the IIS logs to see the content of the post, but it only showed that I made a POST, not the content of the post.
The 360 Works client is a java program that has given me a hint how the XML is formatting out and in, but I can't quite translate that into the httppost://... I need for an Insert from URL. I wonder if the computer I'm using (Mac OS X) can show me outgoing http requests in greater detail.
If you can run the request in a browser, then you can use the develop functions of Safari, must be enabled in preferences.
You can access quite some debugging info from there.
Altho I'm no expert in SOAP...
When using the insert from Url, all quote escaping must be done correctly if passed as string, also wrapping the request with GetAsUrlEncoded () function can help.
A lot of the times it gets me, or a typo.
OTOH, If you read this then it will not be possible:
One of the main limitations when performing an HTTP POST is that we are unable to set the HTTP Headers. When working with web services – particular SOAP/XML based web services – you will often be required to set specific headers before sending the HTTP POST data. With FileMaker Pro 13.0v1 the following headers are set automatically and cannot be changed:
Hopefully a future update to FileMaker Pro will allow developers to set the HTTP Headers for each request – in the meantime you will have to continue using of the available FileMaker plugins (such as the BaseElements plug-in)
You can read the article here: http://www.databuzz.com.au/filemaker-pro-13-http-post-and-http-headers/
electon makes a couple of good points: you may be running into encoding issues and/or header issues. Such things are difficult to debug.
I'm curious to see what you find.
You can't do all the things a SOAP service will need via Insert From URL. Most SOAP services require an extra header to be set that tells the server which SOAPAction to use, and this can't be done from IFU. You can do it via plugin though, either 360Works, or the BaseElements plugin, or Troi URL, or MonkeyBread, ( and probably others ) will let you set custom headers.
Also submit a feature request that FMI expand the range of options for url, as this is becoming more critical.
Thanks for the thorough reply, electon.
I can't run the request in a browser yet, only that 360 Works' SOAP Client
which interpreted the WSDL and sent the formatted XML for me without quite showing me how.
BaseElements is a little pricey for a school that might only use it experimentally or short term on two or three ECM export projects. I'm wondering whether 360Works WebAssistant 1.6 will do the same thing.
My next step might be to ask 360 Works for a little more info about what the SOAP Client is sending.
+1 to what Nick said.
IFU No; Plugins Yes:
IFU has been a welcome addition to the native FM toolkit, but it does not offer the full set of features that you are likely to need to do a SOAP request, namely:
- setting http headers
- sending content payload as XML instead of sending as application/x-www-form-urlencoded
Plugins, however, will work great for this purpose.
FileMaker Go Scenario:
In the event that you are working on a FileMaker Go solution where plugins aren't a client-side option, the two options that I know of are:
1) Use Perform Script on Server, and have the server perform the post using a plugin
2) Use a WebViewer to send the post request.
Regarding using a WebViewer:
Mike Duncan has a nice post about this:
I also posted about this here on TechNet:
As a last note:
Assuming that you are not doing your development/testing with sensitive data, there is a nice service available to help you see how your HTTP requests are arriving at the server:
Hope this helps & kind regards,
Of all the options you mention, the plugins perform the best, then?
Well, if you use MBS Plugin to make the transfer with CURL, you can turn on Verbose logging and get debug messages which show you what is sent and received. A great help to debug this.
I was once thinking in the same direction.
My opinion is that you can not call SOAP services only with native Filemaker functionality.
The reason is, as many wrote, you dont have access to the request that is sent over the wire.
That means you can not add or change additional headers to the request being sent.
Alternatives are different plugins. In my opinion you can do that with some client software library or cURL (but that is a little harder). I am not sure, but I have a feeling that you not understand well the topics of webservices and HTTP protocol.
Thanks, everyone who pointed me in the right direction.
I found another free SOAP Client
which is compatible with both WSDL files I was parsing and it provides more information.
I ended up using the BaseElements Plugin, which worked well.
It was tough picking a Correct Answer from all the good ones, but even though Nicholas Orr didn't give the first correct answer, he hung around to quickly correct a poor assumption on my part. Thanks again.