【发布时间】:2022-06-23 03:26:58
【问题描述】:
我正在尝试构建一个类似于 Postman 的应用程序。基本上,用户可以输入 URL 并发送不同类型的请求(GET、POST 等)。一开始,我正在尝试实现 GET 并确保它正常工作。
我允许用户输入一个 URL,单击按钮将触发我的 RequestService.GetRequest() 方法,如下所示:
public static async Task GetRequest(string url, RichTextBox ResponseRichTextBox, Label StatusCodeLabel)
{
string response = "";
var client = new HttpClient();
client.DefaultRequestHeaders.Add("User-Agent", "C# program");
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var resultContent = await client.GetStringAsync(url);
var resultStatusCode = await client.GetAsync(url);
Console.WriteLine("Output: " + resultContent.ToString());
ResponseRichTextBox.Text = resultContent.ToString();
if (resultStatusCode.IsSuccessStatusCode)
StatusCodeLabel.Parent.BackColor = Color.MediumSeaGreen;
else StatusCodeLabel.Parent.BackColor = Color.Crimson;
StatusCodeLabel.Parent.Show();
StatusCodeLabel.Text = resultStatusCode.StatusCode.ToString();
}
向 Google 等网站发送请求或使用 GitHub (https://api.github.com/users/.../repos) 等 API 时,一切似乎都运行良好。我通过提供的 RichTextBox 正确接收数据。问题在于尝试向 Facebook 发送请求时。我一直在尝试通过 Postman 发送它,它似乎可以工作(它返回一个 HTML 页面),但使用我的应用程序实际上不会这样做。它甚至不输出一些消息。甚至没有告诉我发生了异常。
我一直在调试代码,在查看 Visual Studio 中的 Output 选项卡时,我看到了这个(在向 https://facebook.com 发送请求后立即):
Exception thrown: 'System.InvalidOperationException' in mscorlib.dll
老实说,我不确定为什么会这样。以为我错过了一些标题,但我不确定我是否正确(或者我应该添加/删除哪些标题)。
【问题讨论】:
标签: c# winforms dotnet-httpclient