dataTable.Rows ForEch時獲取 行號,以及6位補齊填充0
string[] prem = new string[] { "count", "hour", "begin_time", "type", "target", "keyword", "sUrl", "goodsBrowsingTime" };
DataTable dataTable = this.dataGridView1.DataSource as DataTable;
foreach (DataRow dr in dataTable.Rows)
{
int index = dataTable.Rows.IndexOf(dr);
if (dr["request_result"].ToString() == "發佈成功!") continue;
Dictionary<string, string> keyValuePairs = new Dictionary<string, string>();
keyValuePairs.Add("username", user);
keyValuePairs.Add("id", DateTime.Now.ToString("yyyyMMddHHmmss") + index.ToString().PadLeft(6,'0'));//"000211"+
keyValuePairs.Add("type", type);
//username","id","count","hour","begin_time","type","target","keyword","sUrl","goodsBrowsingTime","goodsAttention","shopVisit","shopVisitCount","ri","shopVisitTime","notclick","format","timestamp","ver","signkey
foreach (string item in prem)
{
if (dataTable.Columns.Contains(item))
keyValuePairs.Add(item, dr[item].ToString().Replace(" 0:00:00", ""));
}
keyValuePairs.Add("sUrl", sUrl);
keyValuePairs.Add("goodsBrowsingTime", goodsBrowsingTime);
keyValuePairs.Add("format", "json");
keyValuePairs.Add("timestamp", Cxt.Uniti.get_timestamp2(10));
keyValuePairs.Add("ver", "4");
Dictionary<string, string> dic1_SortedByKey = keyValuePairs.OrderBy(p => p.Key).ToDictionary(p => p.Key, o => o.Value);
var urlParamsStrSignkey = task + "?" + string.Join("&", (from s in dic1_SortedByKey select s.Key + "=" + s.Value).ToArray()) + "&";
string signkey = Cxt.Uniti.MD5Encrypt32(Cxt.Uniti.UrlEncode(urlParamsStrSignkey, Encoding.UTF8) + userKey).ToLower();
string url_path = task + "?" + string.Join("&", (from s in keyValuePairs select s.Key + "=" + Cxt.Uniti.UrlEncode(s.Value, Encoding.UTF8)).ToArray()) + "&signkey=" + signkey;
string url = "http://api.lieliu.com:1024" + url_path;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "get";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream response_stream = response.GetResponseStream();
int count = (int)response.ContentLength;
int offset = 0;
byte[] buf = new byte[count];
while (count > 0) //讀取返回數據
{
int n = response_stream.Read(buf, offset, count);
if (n == 0) break;
count -= n;
offset += n;
}
string request_result = Encoding.UTF8.GetString(buf);
var model = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, dynamic>>(request_result);
dr["request_result"] = model["data"]["tips"].ToString();
}