Silverlight HTTP POST
我只是想在上执行一个http post。以下是我一直尝试使用的代码:Silverlight HTTP POST,silverlight,Silverlight,我只是想在上执行一个http post。以下是我一直尝试使用的代码: private void pif_test_conn() { Uri url = new Uri("http://www.test.com/test.asp?test1=3", UriKind.Absolute); if (httpResult == true) { HttpWebRequest request = (Http
private void pif_test_conn()
{
Uri url = new Uri("http://www.test.com/test.asp?test1=3", UriKind.Absolute);
if (httpResult == true)
{
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
request.ContentType = "application/x-www-form-urlencoded";
request.Method = "POST";
request.BeginGetResponse(new AsyncCallback(ReadCallback), request);
}
return ;
}
private void ReadCallback(IAsyncResult asynchronousResult)
{
HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult);
using (StreamReader streamReader1 = new StreamReader(response.GetResponseStream()))
{
string resultString = streamReader1.ReadToEnd();
MessageBox.Show("Using HttpWebRequest: " + resultString, "Found", MessageBoxButton.OK);
}
}
当我执行此代码时,我的程序触发应用程序未处理异常事件。不知道我做错了什么 为了发送HTTP POST,您需要通过调用方法将POST数据写入请求
这可能就是为什么你会得到一个例外;请告诉我们您获得的更具体答案的例外情况。您是否试图发布到其他主机?这种行为可能会导致XSS安全问题,因此不可用
string responseValue = "";
AutoResetEvent syncRequest = new AutoResetEvent(false);
Uri address = new Uri(HtmlPage.Document.DocumentUri, "/sample.aspx");
WebRequest request = WebRequest.Create(address);
request.Method = "POST";
request.BeginGetRequestStream(getRequestResult =>
{
// Send packet data
using (Stream post = request.EndGetRequestStream(getRequestResult))
{
post.Write(buffer, 0, buffer.Length);
post.Close();
}
// wait for server response
request.BeginGetResponse(getResponseResult =>
{
WebResponse response = request.EndGetResponse(getResponseResult);
responseValue=new StreamReader(response.GetResponseStream()).ReadToEnd();
syncRequest.Set();
}, null);
}, null);
syncRequest.WaitOne();
MessageBox.Show(
"Using WebRequest: " + responseValue,
"Found", MessageBoxButton.OK);
HTH您只能向应用程序所在的域发送HTTP请求 此限制可防止攻击。关于
如果您在
SyncRequest.WaitOne()
调用中离开,调用会死锁,至少在Silverlight 4.0中是这样。您会遇到什么异常?没有post数据?您的意思是发布或获取{System.Security.SecurityException-->System.Security.SecurityException:Security error.System.Security.SecurityException您处理silverlight POST的三重异步的格式非常棒。这比创建多个处理函数要紧凑得多。