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