Sha*_*der 6 .net c# asp.net-web-api dotnet-httpclient asp.net-web-api2
我在我的asp.net web api 2应用程序中使用HttpClient类将一些信息发布到端点.我只是想在不等待回复的情况下发布信息.这是正确的语法
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("http://localhost:9000/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
// HTTP POST
var gizmo = new Product() { Name = "Gizmo", Price = 100, Category = "Widget" };
var response = await client.PostAsJsonAsync("api/products", gizmo);
}
Run Code Online (Sandbox Code Playgroud)
要在 ASP.NET 中实现异步任务,请参阅以下示例语法:
protected void Page_Load(object sender, EventArgs e)
{
try
{
RegisterAsyncTask(new PageAsyncTask(LoadUrlContent));
}
catch {}
}
protected async Task LoadUrlContent()
{
try
{
// Add your code here, for example read the content using HttpClient:
string _content = await ReadTextAsync(YourUrl, 10);
}
catch { throw; }
}
Run Code Online (Sandbox Code Playgroud)
另外, <%@ Page ... Async="true" %>在页面级别设置。
以下示例代码片段显示了 HttpClient 的使用(从以下位置调用此示例函数LoadUrlContent():
protected async Task<string> ReadTextAsync(string Url, int TimeOutSec)
{
try
{
using (HttpClient _client = new HttpClient() { Timeout = TimeSpan.FromSeconds(TimeOutSec) })
{
_client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("text/html"));
using (HttpResponseMessage _responseMsg = await _client.GetAsync(Url))
{
using (HttpContent content = _responseMsg.Content)
{
return await content.ReadAsStringAsync();
}
}
}
}
catch { throw; }
}
Run Code Online (Sandbox Code Playgroud)
您可以修改与您的特定任务相关的代码库。
希望这会有所帮助。
| 归档时间: |
|
| 查看次数: |
5098 次 |
| 最近记录: |