我想在 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/