I’m trying to post some XML to a an exposed service. I’m using System.Net.WebRequest to post the required info, and using Fiddler I can see that the result of my post is as follows:
POST http://x.x.x.x:5010/FindReservationByRoom HTTP/1.1
Content-Type: text/xml
Transaction: 1
Host: x.x.x.x:5010
Content-Length: 29
Expect: 100-continue
<Body><Room>103</Room></Body>
Unfortunately the above does not appear to work. The instructions for communicating with this service indicate that the first line should actually read:
POST FindReservationByRoom HTTP/1.1
But WebRequest seems to be appending the entire URI to this first line. I’m not an HTTP guru so I’m not certain what I could be doing wrong here. Any suggestions would be much appreciated.
EDIT:
The error message returned from the call is:
Unknown command verb '<Body><Room>103</Room></Body>POST'
EDIT:
The code I’m using to make the call is:
System.Net.WebRequest req = System.Net.WebRequest.Create("http://x.x.x.x:5010/FindReservationByRoom");
req.Headers.Clear();
req.ContentType = "text/xml";
req.Method = "POST";
StringBuilder xml = new StringBuilder();
xml.Append("<Body><Room>103</Room></Body>");
byte[] bytes = System.Text.Encoding.ASCII.GetBytes(xml.ToString());
StringBuilder header = new StringBuilder();
req.Headers.Add("Transaction: 1");
req.ContentLength = bytes.Length;
Stream os = req.GetRequestStream();
os.Write(bytes, 0, bytes.Length);
System.Net.WebResponse resp = req.GetResponse();
if (resp != null)
{
System.IO.StreamReader sr = new System.IO.StreamReader(resp.GetResponseStream());
string responsecontent = sr.ReadToEnd().Trim();
}
As far as i know the status error : Unknown command verb is not a known http response.
You’re treating this problem as if the http request is malformed but i’m getting the feeling there is no http layer problem.
Do you have the source code of this service you are trying to reach or is it a third party component?
I’m guessing they expect something more then just plain xml, maybe the service is scanning your xml for a command verb.