c# - asp.net core 中的网络请求

标签 c# asp.net-core webrequest

我想在 asp.net 核心项目中做一个网络请求。我尝试了以下但它似乎没有在请求中发送数据:

using System.Net;

...

//encoder
UTF8Encoding enc = new UTF8Encoding();

//data
string data = "[\"some.data\"]";

//Create request
WebRequest request = WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "application/json";
request.Credentials = new NetworkCredential(user, secret);

//Set data in request
Stream dataStream = await request.GetRequestStreamAsync();
dataStream.Write(enc.GetBytes(data), 0, data.Length); 


//Get the response
WebResponse wr = await request.GetResponseAsync();
Stream receiveStream = wr.GetResponseStream();
StreamReader reader = new StreamReader(receiveStream, Encoding.UTF8);
string content = reader.ReadToEnd();

我没有收到错误,请求已发送,但它似乎没有随请求发送数据。 我也无法随请求提供数据的长度。这是一个核心问题吗? (ps:凭证发送正确)

谁能帮帮我?

最佳答案

您可能面临同步上下文问题。 尝试等待 GetRequestStreamAsync()GetResponseAsync() 等异步方法,而不是获取 Result 属性。

//Set data in request
Stream dataStream = await request.GetRequestStreamAsync();

//Get the response
WebResponse wr = await request.GetResponseAsync();

关于c# - asp.net core 中的网络请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41182791/

相关文章:

c# - en-ZA .net 中的格式文化问题

c# - 在存储过程调用中使用默认参数

azure - 允许基于 ASP.NET Core 中的策略的匿名身份验证

c# - Add-Migration 命令只提示 "ScriptHalted"

c# - 验证网站上是否存在文件

c# - System.Net.WebRequest - 超时错误

javascript - 更改特定 Firefox 选项卡的当前 URL

c# - 如何处理内存不足异常字符串生成器

c# - ASP.net Application_Start 在计时器中捕获异常

c# - 如何在 Asp.Net Core 2.2 中在运行时禁用/启用身份验证?