aspx:
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
获得淘宝授权: <asp:LinkButton ID="LinkButton1" runat="server" PostBackUrl="LinkButtonhttp://open.taobao.com/isv/authorize.php?appkey=test">LinkButton</asp:LinkButton>
<br />
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" /><div>
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>
</div>
</form>
.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using Taobao.Top.Api;
using Taobao.Top.Api.Domain;
using Taobao.Top.Api.Request;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using System.Net;
using System.IO;
namespace WebApplication1
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
string sessionKey = getSessionKey(TextBox1.Text);
if (sessionKey.StartsWith("Error"))
{
Response.Write("<script>alert('获取SessionKey失败,请更换您的授权码')</script>");
return;
}
DataTable table = new DataTable();
DataColumn c1 = new DataColumn("商品ID", typeof(string));
table.Columns.Add(c1);
DataColumn c2 = new DataColumn("商品URL", typeof(string));
table.Columns.Add(c2);
DataColumn c3 = new DataColumn("卖家昵称", typeof(string));
table.Columns.Add(c3);
DataColumn c4 = new DataColumn("商品标题", typeof(string));
table.Columns.Add(c4);
DataColumn c5 = new DataColumn("商品类型", typeof(string));
table.Columns.Add(c5);
DataColumn c6 = new DataColumn("价格", typeof(string));
table.Columns.Add(c6);
DataColumn c7 = new DataColumn("数量", typeof(string));
table.Columns.Add(c7);
TopXmlRestClient topClient = new TopXmlRestClient("http://gw.api.tbsandbox.com/router/rest", "test", "test");
//TradesSoldGetRequest req = new TradesSoldGetRequest();
ItemsAllGetRequest req = new ItemsAllGetRequest();
req.Fields = "tid,seller_nick,buyer_nick,status,orders.title,orders.price,orders.num";
req.PageSize = 18;
PageList<Item> rsp = topClient.ItemsAllGet(req, sessionKey);
//ResponseList<Trade> rsp = topClient.GetSoldTrades(req, sessionKey);
/*
if (rsp.Content == null || rsp.Content.Count < 1)
{
Response.Write("<script>alert('此会员没有订单,请更换其他会员帐号获取授权码重试')</script>");
return;
}*/
List<Item > trades = rsp.Content ;
foreach (Item trade in trades)
{
DataRow r1 = table.NewRow();
r1["商品ID"] = trade.Iid ;
r1["商品URL"] = trade.DetailUrl ;
r1["卖家昵称"] = trade.Nick;
r1["商品标题"] = trade.Title ;
r1["商品类型"] = trade.Type ;
r1["价格"] = trade.Price ;
r1["数量"] = trade.Num ;
//r1["买家昵称"] = trade.BuyerNick;
//r1["订单编号"] = trade.Tid;
//r1["订单状态"] = trade.Status;
table.Rows.Add(r1);
GridView1.DataSource = table;
GridView1.DataBind();
}
}
public string getSessionKey(string auth_code)
{
try
{
// Create a request for the URL.
WebRequest request = WebRequest.Create("http://container.api.tbsandbox.com/container?authcode=" + auth_code);
// Get the response.
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode != HttpStatusCode.OK) return "Error";
// Get the stream containing content returned by the server.
Stream dataStream = response.GetResponseStream();
// Open the stream using a StreamReader for easy access.
StreamReader reader = new StreamReader(dataStream);
// Read the content.
string responseFromServer = reader.ReadToEnd();
string[] sArray = responseFromServer.Split('&');
foreach (string i in sArray)
{
if (i.ToString().StartsWith("top_session")) return i.ToString().Substring(i.ToString().IndexOf("=") + 1);
}
// Display the content.
// Console.WriteLine (responseFromServer);
// Cleanup the streams and the response.
reader.Close();
dataStream.Close();
response.Close();
return responseFromServer;
}
catch (WebException e)
{
return "Error:" + e.Status;
}
catch (Exception e)
{
return "Error:" + e.Message;
}
}
}
}
当然系统中必须引入dll:Newtonsoft.Json.dll;Top4Net.dll