在Silverlight beta 2 中,所有的 Network Communication 都只提供了APM的方式,调用方法都很简单
话多浪费时间,源码附上先
AccessPolicyDemo.xaml.cs:

Code
public partial class AccessPolicyDemo : UserControl
{
private delegate void DispatcherInvoke(string param);
public AccessPolicyDemo()
{
InitializeComponent();
}
private void Button1_Click(object sender, RoutedEventArgs e)
{
Uri uri = new Uri("http://localhost/SLDemoWeb/Default.aspx"); WebRequest request = WebRequest.Create(uri);
request.Method = "POST";
request.BeginGetRequestStream((AsyncCallback)RequestHandler, request);
}
private void RequestHandler(IAsyncResult ar)
{
WebRequest request = ar.AsyncState as WebRequest;
using (StreamWriter sw = new StreamWriter(request.EndGetRequestStream(ar)))
{
sw.Write("Silverlight is perfect platform.");
}
request.BeginGetResponse((AsyncCallback)ResponseHandler, request);
}
private void ResponseHandler(IAsyncResult ar)
{
WebRequest request = ar.AsyncState as WebRequest;
using (WebResponse response = request.EndGetResponse(ar))
{
using (Stream streram = response.GetResponseStream())
{
using (StreamReader sr = new StreamReader(streram))
{
Result.Dispatcher.BeginInvoke((DispatcherInvoke)ShowResult,sr.ReadToEnd());
}
}
}
}
void ShowResult(string result)
{
Result.Text = result;
}
}
页面代码就不用帖了,就一个Button + TextBlock
下面是default.aspx.cs的

Code
protected void Page_Load(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder("The content that client send to server:\r\n");
if (Request.InputStream == null || Request.InputStream.Length <= 0)
sb.Append("Fuck,it's nothing.");
else
using (Stream inputStream = Request.InputStream)
{
using (StreamReader sr = new StreamReader(inputStream))
{
sb.Append(sr.ReadToEnd());
}
}
Response.Write(sb.ToString());
Response.End();
}
运行后结果的screenshot
在找资料学习的时候,找到一个老外写的一个HttpWebRequest的helper class,很好用的,详细点这里查看
关于跨域访问下集再说
好了,我的第一篇博文就这样了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库