HttpClient
ユーザーが作成した文字列をサーバー API に POST し、結果を取得するために使用しています。以前は、ユーザーが文字列を入力できるようにするために a を使用していましたが、きれいな色が欲しかったので、を aTextBox
に置き換えようとしましたが、惨めに失敗しました。使用するとすべて正常に機能しましたが、使用すると「アクセスが拒否されました」というメッセージが表示されます。メソッドでからテキストを取得します。テキストを取得する場所、または文字列を. 文字列は、 からテキストを追加する前後に編集され、別のメソッドに送信されます。TextBox
RichEditBox
TextBox
RichEditBox
RichEditBox
Document.GetText
FormUrlEncodedContent
RichEditBox
TL:DRTextBox
: aHttpClient
を使用して aから文字列を送信することはできますが、をaPOST
に置き換えた場合は機能しません。TextBox
RichEditBox
完全なエラー メッセージは次のとおりです。
System.UnauthorizedAccessException: 'アクセスが拒否されました。(HRESULT からの例外: 0x80070005 (E_ACCESSDENIED))'
なぜこれが起こっているのかについて、誰かが解決策または説明を持っていますか?
編集
コードサンプル:
private async void RichEditBox_KeyUp(object sender, KeyRoutedEventArgs e)
{
if (e.Key == VirtualKey.Enter)
{
await RunCode(); //The error points to this line
}
}
private async void RunCode()
{
string code = CodeBefore;
foreach (RichEditBox tb in editStack.Children) //If I comment out the foreach loop I don't get any errors
{
if (tb.Tag.ToString() == "input")
{
tb.Document.GetText(Windows.UI.Text.TextGetOptions.None, out string thisLine);
code += thisLine;
}
}
code += CodeAfter;
await RunCSharp(code);
}
private async Task<Code> RunCSharp(string code)
{
Code re = new Code();
using (HttpClient client = new HttpClient())
{
FormUrlEncodedContent content = new FormUrlEncodedContent(new[]
{
new KeyValuePair<string, string>("LanguageChoiceWrapper", "1"),
new KeyValuePair<string, string>("Program", code), //If I replace code with a string I don't get any errors
new KeyValuePair<string, string>("ShowWarnings", "false")
});
try
{
HttpResponseMessage msg = await client.PostAsync("http://mywebaddress.com/run", content);
re = JsonConvert.DeserializeObject<Code>(await msg.Content.ReadAsStringAsync());
}
catch { }
}
return re;
}