问题描述
让我们假设我通过调用本地网站的API获得了游戏订单。 (一个出售游戏代码的本地网站,当用户在该网站上进行购买时,我正在从该网站的API获取订单。)我将使用.net核心控制台应用程序执行此操作,该应用程序将每隔一次检查该网站的API 10分钟。现在假设我从网站的API获得了5个游戏订单。在此.net核心控制台应用程序内部,我将调用我的API,以完成对这5个游戏订单的购买,如下所示。 (我正在调用第三方Rest API以获取游戏代码。)
能否请您检查我的代码并给我一些反馈\建议?有什么地方可以引起问题吗?
static async Task Main(string[] args)
{
// Assume I am getting game orders from the web site here
//
.....
const int numberOfProducts = webSiteGameOrders;
try
{
for (var i = 0; i < numberOfProducts; i++)
{
var product = webSiteProduct;
//DEV
var request =
(HttpWebRequest)WebRequest.Create("http://test//api/purchase");
var svcCredentials =
Convert.ToBase64String(
Encoding.ASCII.GetBytes("username" + ":" + "password"));
request.Headers.Add("Authorization","Basic " + svcCredentials);
request.Method = "POST";
request.KeepAlive = false;
request.ContentType = "application/x-www-form-urlencoded";
var content = new FormUrlEncodedContent(new[]
{
new keyvaluePair<string,string>("productCode",webSiteProduct),new keyvaluePair<string,string>("quantity","1"),string>("shopNo",string>("safeNo",string>("cashierNo","1")
});
var formUrlEncodedContent = content;
var urlEncodedString = await formUrlEncodedContent.ReadAsstringAsync();
using (var streamWriter = new StreamWriter(await request.GetRequestStreamAsync()))
{
streamWriter.Write(urlEncodedString);
}
var httpResponse = (HttpWebResponse)(await request.GetResponseAsync());
var response = new HttpResponseMessage
{
StatusCode = httpResponse.StatusCode,Content = new StreamContent(httpResponse.GetResponseStream()),};
//Read response
var htmlResponse = await response.Content.ReadAsstringAsync();
var deserializedResult = JObject.Parse(htmlResponse);
Console.WriteLine((string)deserializedResult["coupons"]?[0]?["Serial"] + ":" + (string)deserializedResult["coupons"]?[0]?["Pin"]);
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
throw;
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)