Web請求のC#に開発できるプラットフォーム2.0
-
05-09-2019 - |
質問
を使用している次のコードを取得する簡単なウェブからApache2.2SilverLightに無い.
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;
//yoursite/whatever/your.page <:そして、正しい「のhttpにするために、文字列の/ etcメソッドを使用します/> ";
シルバー注のみホストサイトへ(IIRC)接続を許可します。
他のヒント
を行うことができる BeginGetResponse 電話としての最初の呼び出しにサンプルテストの場合、 BeginGetRequestStream 電話が必要な場合への一部を郵便のデータが、要求されたページです。
所属していません StackOverflow