use pingdom to monitor soap service - soap

I'm sending a SOAP request to my server via Pingdom -- just put the XML content in the POST data field.
When clicking "Test Check", the button greys out for a few seconds and then comes back.
I've tried with SoapUI and Postman respectively, it works there -- is this possible with Pingdom at all?

OK, found the answer myself -- Pingdom can do this without a problem, I only needed to remove line breaks from the SOAP message.

Related

How to convert soap message in Oracle OSB

I'm just starting with Oracle Service Bus 12C.
I created a proxy service that takes in a couple of parameters. A pipeline that moves those parameters to the request-headers. A business service that calls my PHP. So far, the PHP receives the parameters correctly.
Next, I am returning a response from PHP. As a first step, I did a simple echo "Hello, World";
Two things are happening at this point.
Firstly, when debugging the app, JDeveloper shows that $body in Response Action is blank. However, in a log action, I added $body. That shows:
<soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">Hello, World</soapenv:Body>
No idea why JDeveloper doesn't want to show this.
So, how do I get the string part from this so I can use a Insert Action to build the XML response that the proxy service would understand?
I tried these in the log action, but all of them give blank outputs:
$body/*
$body/soap-env:body
$body/soap-env:Body
$body/soap-env:Body/#value
$body/soap-env:body/#value
Edit: According to https://docs.oracle.com/cd/E13171_01/alsb/docs25/consolehelp/context.html $body/* should extract the payload without the soap-env:Body wrapper.
Got it:
$body/text()
I noticed that the tag is soap-env in the request and soapenv in the response. The $body/* works for the request to remove the wrapper in the request only.

Google Smart Home - Report State Real-Time Feed

I have an application that receives and run correctly the SYNC, QUERY, EXECUTE sent by Google Actions.
I too configured Report State in HomeGraph console. It works fine, but when I send a change report command to HomeGraph and it's accepted, nothing is updated in the Google home app, is this right? is the correct behavior?
I forget to do something else?
My sync response sends the device with willRportSate: true
tks in advance
If you are getting an HTTP 200 response from your report state command, you're doing it correctly.
I have recently implemented HomeGraph to my action. I found that if there is something wrong with the request google will return some error in the form of JSON with a different status code.
But as it is said above, if you got 200 OK, then everything is OK from your side. For my requests, I get a response with the uuid that I give with a 200 OK status code.

Creating test in NeoLoad from WSDL with http authentication

I am creating a performancetest in the tool NeoLoad for several webservices.
You can insert a soap request in your test.
After hitting this option in the menu a window opens in which you have to enter a wsdl(-location) or choose for creating everything manual.
When i enter the WSDL location an error is given (http status code 401).
When i open the same location in a webbrowser i am asked for login credentials.
However in NeoLoad i don't get this question.
I tried adding userid and pasword to the location (http://user:pwd#serv.com/test?wsdl) but then the 401 error was given for the xsd's mentioned in the wsdl.
Has anyone got an idea how to solve this?
I can propose a workaround: open the WSDL with your browser, download it with its related files (includes...) and pick the file on the disk from NeoLoad.
As a workaround i added the WSDL in SoapUI and created thespecific call in there.
In SoapUI in have to sett user and password on a few places.
Then i change the proxy used bij SoapUI tot localhost:8090 (NeoLoad).
I press the records button in NeoLOad, hit play in SoapUI and after getting and awnser in SoapUI i stop the recording in NeoLoad.
Neotys fixed this problem in NeoLoad 5.1.4

POST from WinForms app using HttpWebRequest to webservice doesn't work when sent through Fiddler

I'm using HttpWebRequest in a VB.Net WinForms app to get data from an inhouse webservice. The code I'm using works for both GET and POST when run while Fiddler is not running. If I have Fiddler running the GETs work and are captured but a POST doesn't complete. In this case Fiddler captures the initial request but never gets the response and the application doesn't get a response.
The code builds a HttpWebRequest for the POST setting the appropriate properties, encodes the data to be sent into JSON and then does this.
Using postStream As Stream = webrequestobj.GetRequestStream()
postStream.Write(WebServiceByteData, 0, WebServiceByteData.Length)
End Using
I used WireShark to capture the generated network packets and noticed that when a POST is sent without going through Fiddler the following happens.
When "postStream As Stream = webrequestobj.GetRequestStream()" is executed a packet with all of the header info is sent that includes a "Expect: 100-continue" header but doesn't have the request data.
When the postStrean.Write call is executed an additional packet is sent that has the request data.
With Fiddler running nothing is put on the wire until after the postStream.Write is executed. At that point both the header packet with the "Expect: 100-continue" header and the request data packet are sent back to back before the service has responded with the "100 Continue". I'm guessing that this confuses the webservice as it doesn't expect to get the request data packet yet. It doesn't respond with the requested data.
I used Composer to manually create the request without the "Expect: 100-continue" header. When this is executed the same two packets are generated and the service responds with the expected data.
So, in order to be able to use Fiddler to capture the POST traffic it looks like I need to either be able to tell HttpWebRequest to not issue the "Expect: 100-continue" header (I've looked but haven't found a way to do this) or for Fiddler to handle the packets differently, maybe not sending the second packet until it sees the "100 Continue" response or by stripping out the "Expect: 100-continue" header.
It's possible that I've missed a setup option in Fiddler but nothing I've tried so far makes any difference.
Thanks,
Dave
Old question, but the short answer is that the lack of a 100/Continue response shouldn't have mattered at all.
To learn more about Expect: Continue, including how to remove this header if you like, see http://blogs.msdn.com/b/fiddler/archive/2011/11/05/http-expect-continue-delays-transmitting-post-bodies-by-up-to-350-milliseconds.aspx

500 read timeout Selenium : on opening website with large records

I am using Perl with Selenium. I have set $sel->set_timeout("86400000");.
When opening a website with large content, 500 read timeout message is displayed. Can someone please help me?
It seems to me that not the Selenium webdriver (the client) has issued the timeout, but the webserver has been waiting too long.
What do you want to accomplish? Maybe you can just make a HTTP HEAD request to check that your URL is valid? (A HEAD request does not give you any content back, just the HTTP header with the http status code and, optionally, the "Content-Length" header, among other fields. The HEAD request is much faster that a GET or POST request and yo won't have problems with timeouts. You might get more than one HEAD respnses e.g. if your request is redirected to another server.
Or do you want to check the large content itself. Then I cannot help you at this point. There is not enough information.
You can use a Test::WWW::Mechanize object to create the HEAD request (it is a subclass of LWP::Request). NOt sure if selenium supports head requests.