我有一個需要調用URL(可能是網頁,REST服務等)的WCF REST服務並將某些值傳遞給它(類似http://xyz.com/callback?a=1&b=2)。它不需要擔心響應(只需調用並忘記)。什麼是正確的方法來做到這一點?如何從WCF REST服務調用URL
0
A
回答
4
1
馬修所說,HttpWebRequest的是通過代碼使Web請求的理想方式。您應該使用像Fiddler這樣的工具來捕獲網站流量,然後在代碼中重建相同類型的請求。我有一個輔助類,我用它來解決這個問題,但這裏是我在發送數據和請求時使用的一部分。
public static string HttpRequest(string requestType, string contentType, string parameters, string URI, CookieContainer cookies)
{
string results = string.Empty;
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(URI);
req.CookieContainer = cookies;
req.Method = requestType;
req.AllowAutoRedirect = true;
req.ContentLength = 0;
req.ContentType = contentType;
req.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0";
if (!string.IsNullOrEmpty(parameters))
{
byte[] byteArray = Encoding.UTF8.GetBytes(parameters);
req.ContentLength = byteArray.Length;
Stream dataStream = req.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
}
try
{
HttpWebResponse response = (HttpWebResponse)req.GetResponse();
if (HttpStatusCode.OK == response.StatusCode)
{
Stream responseStream = response.GetResponseStream();
// Content-Length header is not trustable, but makes a good hint.
// Responses longer than int size will throw an exception here!
int length = (int)response.ContentLength;
const int bufSizeMax = 65536;
// max read buffer size conserves memory
const int bufSizeMin = 8192;
// min size prevents numerous small reads
// Use Content-Length if between bufSizeMax and bufSizeMin
int bufSize = bufSizeMin;
if (length > bufSize) bufSize = length > bufSizeMax ? bufSizeMax : length;
// Allocate buffer and StringBuilder for reading response
byte[] buf = new byte[bufSize];
StringBuilder sb = new StringBuilder(bufSize);
// Read response stream until end
while ((length = responseStream.Read(buf, 0, buf.Length)) != 0)
sb.Append(Encoding.UTF8.GetString(buf, 0, length));
results = sb.ToString();
}
else
{
results = "Failed Response : " + response.StatusCode;
}
}
catch (Exception exception)
{
Log.Error("WebHelper.HttpRequest", exception);
}
return results;
}
注意:可能是其他助手的一些呼叫,但基本流程顯示讓您知道您需要做什麼。
相關問題
- 1. 如何調用WCF REST服務從PHP
- 2. 如何從WCF REST服務
- 3. 從WCF調用HTTPS REST服務
- 4. WCF REST服務 - 自主機Windows服務 - 如何使用%的URL
- 5. 如何從Android客戶端調用REST WCF服務
- 6. 從WCF消費REST服務
- 7. WCF REST服務
- 8. 如何從JQuery調用C#Rest服務
- 9. 如何從Windows服務調用REST API
- 10. jQuery函數來調用WCF REST服務
- 11. 如何從JavaScript調用WCF服務?
- 12. 如何從PHP調用RESTful WCF服務
- 13. 如何從.NET 1.1調用WCF服務
- 14. 如何從C++調用WCF服務
- 15. 如何從jQuery調用WCF Web服務?
- 16. 如何調用WCF服務?
- 17. Wcf rest服務URL最大長度
- 18. 如何使用#號作爲REST WCF服務的URL參數
- 19. 如何使用json.net WCF REST服務
- 20. 如何使用.Net 4.0 REST WCF服務?
- 21. 從UITableViewCell調用Rest服務
- 22. 從servlet調用Rest服務
- 23. 從Silverlight調用REST服務
- 24. 如何使用URI參數調用WCF REST服務
- 25. 從Silverlight調用WCF服務
- 26. 從xcode4.3調用wcf服務
- 27. 從jquery調用Wcf服務
- 28. 從iPhone調用WCF服務
- 29. InProcProxyFactory.CreateInstance從WCF服務調用
- 30. 從javascript調用WCF服務