Web请求在C#中的Silverlight 2.0
-
05-09-2019 - |
题
我已经使用以下代码来获得从Apache 2.2的在Silverlight无济于事一个简单的网络响应。
private void bDoIt_Click(object sender, RoutedEventArgs e)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri("/silverlight/TestPage2.html"));
request.Method = "POST";
request.ContentType = "text/xml";
request.BeginGetRequestStream(new AsyncCallback(RequestProceed), request);
}
private void RequestProceed(IAsyncResult asuncResult)
{
HttpWebRequest request = (HttpWebRequest)asuncResult.AsyncState;
StreamWriter postDataWriter = new StreamWriter(request.EndGetRequestStream(asuncResult));
postDataWriter.Close();
request.BeginGetResponse(new AsyncCallback(ResponceProceed), request);
}
private void ResponceProceed(IAsyncResult asuncResult)
{
HttpWebRequest request = (HttpWebRequest)asuncResult.AsyncState;
HttpWebResponse responce = (HttpWebResponse)request.EndGetResponse(asuncResult);
StreamReader responceReader = new StreamReader(responce.GetResponseStream());
string responceString = responceReader.ReadToEnd();
txtData.Text = responceString;
}
是否这样做的任何人没有更好的方法?
解决方案
您是否尝试过 WebClient
一>?这种存在于Silverlight和可能使生活更轻松。想必你想要 UploadStringAsync
此外 - 我相信你需要使用绝对URL;如果你不想硬编码(相当合理),你可以从你的主机:
string url = App.Current.Host.Source.AbsoluteUri;
然后,使用串/等方法,使正确的“ HTTP://yoursite/whatever/your.page “;
注意,SILVERLIGHT只允许向主机站点(这个)连接。
其他提示
您可以做的 BeginGetResponse 拨打在您的样品测试情况下,第一个电话,在 BeginGetRequestStream 如果您正打算通过一些POST数据到只需要调用请求的网页。
不隶属于 StackOverflow