C# 异步API请求新建
我正在尝试以ASP.NET web表单进行API调用。请求在控制台中可以正常工作,但异步请求超时,无法工作。请告知 控制台应用程序代码:C# 异步API请求新建,c#,asp.net,api,webforms,C#,Asp.net,Api,Webforms,我正在尝试以ASP.NET web表单进行API调用。请求在控制台中可以正常工作,但异步请求超时,无法工作。请告知 控制台应用程序代码: using System; using System.Collections.Generic; using System.Text; using Newegg.Marketplace.SDK; using Newegg.Marketplace.SDK.Base; using Newegg.Marketplace.SDK.DataFeed; using New
using System;
using System.Collections.Generic;
using System.Text;
using Newegg.Marketplace.SDK;
using Newegg.Marketplace.SDK.Base;
using Newegg.Marketplace.SDK.DataFeed;
using Newegg.Marketplace.SDK.DataFeed.Model;
using Newegg.Marketplace.SDK.Item;
using Newegg.Marketplace.SDK.Item.Model;
using Newegg.Marketplace.SDK.Order;
using Newegg.Marketplace.SDK.Order.Model;
using Newegg.Marketplace.SDK.Other;
using Newegg.Marketplace.SDK.Other.Model;
using Newegg.Marketplace.SDK.Report.Model;
using Newegg.Marketplace.SDK.RMA;
using Newegg.Marketplace.SDK.RMA.Model;
using Newegg.Marketplace.SDK.Seller;
using Newegg.Marketplace.SDK.Seller.Model;
using Newegg.Marketplace.SDK.Shipping.Model;
namespace example
{
public class Demo
{
private OrderCall ordercall;
private ItemCall itemCall;
private SellerCall sellerCall;
private DatafeedCall datafeedCall;
private RMACall rmaCall;
private ShippingCall shippingCall;
private ReportCall reportCall;
private OtherCall otherCall;
public Demo()
{
//Construct an APIConfig with SellerID, APIKey(Authorization) and SecretKey.
APIConfig config = new APIConfig("****", "********************************", "********-****-****-****-************");
// or load the config file to get it.
//APIConfig config = APIConfig.FromJsonFile("setting.json");
//Create a APIClient with the config
APIClient client = new APIClient(config);
//Create the Api Call object with he client.
ordercall = new OrderCall(client);
itemCall = new ItemCall(client);
sellerCall = new SellerCall(client);
datafeedCall = new DatafeedCall(client);
rmaCall = new RMACall(client);
shippingCall = new ShippingCall(client);
reportCall = new ReportCall(client);
otherCall = new OtherCall(client);
}
public void GetOrderStatus()
{
Console.WriteLine("GetOrderStatus");
// Send your request and get response
var orderstatus = ordercall.GetOrderStatus("105137040").Result;
// Use the data pre you business
Console.WriteLine(string.Format("There order status is {0}.", orderstatus.OrderStatusName));
}
}
我的ASP.NET代码
public partial class HomePage : System.Web.UI.Page
{
private OrderCall orderCall;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
RegisterAsyncTask(new PageAsyncTask(LoadSomeData));
}
}
public async Task LoadSomeData()
{
string path = @"C:\Users\*****\source\repos\Orders\Settings\setting.json";
APIConfig config = APIConfig.FromJsonFile(path);
APIClient client = new APIClient(config);
orderCall = new OrderCall(client);
try
{
var orderstatus = await orderCall.GetOrderStatus("105137040");
Debug.Write(orderstatus.OrderStatusName);
Connect.BackColor = Color.Green;
}
catch (Exception ex)
{
Connect.BackColor = Color.Red;
Debug.WriteLine(ex.Message);
}
}
}
}
使用我的代码后,页面冻结并最终超时。返回的对象也为null或返回错误。您是否在.aspx文件的
页面
指令中设置了Async=“true”
?@devNull是我做的如果devNull的建议无效,请尝试将您的wait orderCall.GetOrderStatus(“105137040”)更改为wait orderCall.GetOrderStatus(“105137040”)。configurewait(false)“Kuroiyatsu,我试过了。出于某种原因,它抛出一个无效值异常。我也尝试过加载,它说根级别的数据有问题。您是否在.aspx文件的页面
指令中设置了Async=“true”
?@devNull是我做的如果devNull的建议不起作用,尝试将您的wait orderCall.GetOrderStatus(“105137040”)更改为wait orderCall.GetOrderStatus(“105137040”).配置等待(错误)。@Kuroiyatsu我试过了。出于某种原因,它抛出一个无效值异常。我也尝试过加载,它说根级别的数据有问题。