我有2個項目 - 1純粹只是一個.ashx通用處理程序,另一個是將XML文檔發佈給它的測試項目。如何獲取已發佈的XML文檔?獲取XML文檔發送
的客戶端代碼(簡稱爲簡潔起見)
string xmlToSend = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><APPLICATION> <TRANSACTIONTYPE>12</TRANSACTIONTYPE></APPLICATION>";
WebRequest webRequest = WebRequest.Create(new Uri("http://localhost:8022/handle.ashx"));
webRequest.ContentType = "text/xml";
webRequest.Method = "POST";
byte[] bytes = Encoding.ASCII.GetBytes(xmlToSend);
Stream os = null;
webRequest.ContentLength = bytes.Length;
os = webRequest.GetRequestStream();
os.Write(bytes, 0, bytes.Length);
os.Close();
WebResponse webResponse = webRequest.GetResponse();
//if (webResponse == null)
//{ return null; }
StreamReader sr = new StreamReader(webResponse.GetResponseStream());
string sRet = "";
sRet = sr.ReadToEnd().Trim();
接收代碼
public void ProcessRequest(HttpContext context)
{
// Well, not sure what to do here.
// context.Request.Params has a count of 48, but doesn't have the XML.
// context.Request.Form has a count of 0
}
我知道我失去了一些東西基本在這裏。但我無法想象出我的生活。
請不要建議使用WCF,除非這是我打算讓這個工作的唯一方法。我發現WCF非常困難和挑剔的起牀和去。
我甚至不能讓我的處理程序,以我的斷點打破,但我知道,它被稱爲(我已經多次改變它返回的日期,時間和日期,一些亂碼字符串我輸入,所以我知道它被稱爲並可以迴應。)
只是想指出的是,WebRequest.Create應包含一個URI來完成,喬資源http://msdn.microsoft.com/en-us/library/bw00b1dc.aspx – Joe 2011-03-28 19:52:05
。雖然我覺得自己被騙了,因爲我剛剛使用「新的Uri」,並將我的網址作爲構造函數傳遞給它。不知道它給了我什麼,但是,嘿,它完成了。 – 2011-03-28 19:59:43
@Matt:這不是一個有效的URI。我確信代碼會立即拋出異常。 – 2011-03-28 20:00:48