using System;
using System.Collections.Generic;
using System.Data;
using System.Net;
using System.Text;
using Newtonsoft.Json;
namespace ConsoleApp
{
public class DataItem
{
public double STKID { get; set; }
public double SPID { get; set; }
public string STKNAME { get; set; }
public string CNAME { get; set; }
}
public class RootObject
{
public string statusCode { get; set; }
public string message { get; set; }
public List<DataItem> data { get; set; }
public int PsessionID { get; set; }
}
class Program
{
static void Main(string[] args)
{
//string apiUrl = "http://www.kuaidi100.com/query?type=yuantong&postid=11111111111";
string apiUrl = "https://bff.gds.org.cn/gds/searching-api/ProductService/ProductListByGTIN?PageSize=30&PageIndex=1&SearchItem=06902952880294";
//string apiUrl = "http://baike.baidu.com/api/openapi/BaikeLemmaCardApi?scope=103&format=json&appid=379020&bk_key=%E9%93%B6%E9%AD%82&bk_length=600";
DataTable dataTable = CallApiAndConvertToDataTable(apiUrl);
if (dataTable != null)
{
// 打印 DataTable 中的数据
foreach (DataRow row in dataTable.Rows)
{
Console.WriteLine("成功");
}
}
Console.ReadLine();
}
static DataTable CallApiAndConvertToDataTable(string apiUrl)
{
using (WebClient client = new WebClient())
{
client.Encoding = Encoding.UTF8; // 设置编码为 UTF-8
try
{
byte[] jsonData = client.DownloadData(apiUrl);
var jsonResponse = Encoding.UTF8.GetString(jsonData); // 将字节数组转换为字符串
RootObject root = JsonConvert.DeserializeObject<RootObject>(jsonResponse);
DataTable dataTable = CreateDataTable();
foreach (var dataItem in root.data)
{
DataRow row = dataTable.NewRow();
row["STKID"] = dataItem.STKID;
row["SPID"] = dataItem.SPID;
row["STKNAME"] = dataItem.STKNAME;
row["CNAME"] = dataItem.CNAME;
dataTable.Rows.Add(row);
}
return dataTable;
}
catch (Exception ex)
{
Console.WriteLine("发生错误:" + ex.Message);
return null;
}
}
}
//返回信息解析 AT10:物料编码MATCP:酒的分类MATNANE:酒的名称BRAD:酒的品牌:SPECNAME:规格名称BOSPECIO:净含量SKU:商品条码:VAT:酒的上市日期:SALEPRC:建议委售价:R:备注:HLATID:LTID:SPECID:SPECID:MATBHID:MATEHID:
//发生错误:基础连接已关闭:传送时发生未预期的错误
static DataTable CreateDataTable()
{
DataTable dataTable = new DataTable();
dataTable.Columns.Add("STKID", typeof(double));
dataTable.Columns.Add("SPID", typeof(double));
dataTable.Columns.Add("STKNAME", typeof(string));
dataTable.Columns.Add("CNAME", typeof(string));
return dataTable;
}
}
}