2013-12-09 84 views
0

我需要在控制檯應用程序中模擬AJAX調用Web服務。有沒有辦法用HttpWebRequest來做到這一點?將JavaScript AJAX轉換爲HttpWebRequest代碼

源請求:

變種的WebRequest = Sys.Net.WebServiceProxy.invoke( 'http://webserver.com/WS_Message.asmx', '的MyMethod',假,{P1:AA,P2:BB,P3:123},的onSuccess, onFailure,userContext,timeout,enableJsonp,jsonpCallbackParameter);

樣品不工作:

HttpWebRequest request = (HttpWebRequest) WebRequest.Create("http://webserver.com/WS_Message.asmx/MyMethod"); 
request.Method = "POST"; 
request.ContentType = "application/json; charset=utf-8"; 

byte[] _bytes= Encoding.UTF8.GetBytes("{p1:aa,p2:bb,p3:123}"); 

request.ContentLength = _bytes.Length; 

Stream stream = request.GetRequestStream(); 
stream.Write(_bytes, 0, _bytes.Length); 
stream.Close(); 

HttpWebResponse response = (HttpWebResponse) request.GetResponse(); 

using (StreamReader reader = new StreamReader(response.GetResponseStream())) 
{ 
    Console.WriteLine(reader.ReadToEnd()); 
} 
+1

你能發佈關於你期待什麼以及你目前回復什麼的更多信息? – Lankymart

+0

已經解決了我的問題。與不正確的標題有關。 –

回答

1

它看起來像你打電話到一個JavaScript(基於.NET)的Web服務。爲什麼不簡單地將Web引用添加到您的控制檯應用程序,並以這種方式調用它?

這比通過HttpWebRequest手動複製Web服務調用的工作要少得多。

0

我不得不使用Chrome開發人員控制檯查看正確的http標題。我的問題與不正確的JSON字符串格式有關。

@ 「{」, 「P1」 「: 」「 AA」 「 」「 P2 」「: 」「 BB 」「 」「 P3 」「:123}」