public void CreateDataTest() { const int latMin = 389839880; const int latMax = 404887374; const int lngMin = 1155541990; const int lngMax = 1170812988; decimal lat = random.Next(latMin, latMax) / 10000000m; decimal lng = random.Next(lngMin, lngMax) / 10000000m; CloudCreateData data = new CloudCreateData() { Key = key, TableId = tableId, Data = new List <CloudData>() { new CloudData() { UdId = Guid.NewGuid().ToString(), Title = "地点名称" + Guid.NewGuid().ToString(), Address = "太原理工大学" + Guid.NewGuid().ToString(), Location = new Location() { Lat = lat, Lng = lng }, Tel = "0351-2506887" } } }; //模拟成功的示例 var response = CloudApi.CreateData(data, key, secretKey); Assert.IsNotNull(response); Assert.AreEqual(response.Status, successStatus); Assert.AreEqual(response.Result.Count, 1); Assert.IsNotNull(response.Result.Success); Assert.IsNotNull(response.Result.Success[0].Id); Assert.IsNotNull(response.Result.Success[0].UdId); Assert.AreEqual(response.Result.Success[0].RowIdx, 0); //模拟失败的示例 data.Data[0].Title = null; response = CloudApi.CreateData(data, key, secretKey); Assert.IsNotNull(response); Assert.AreEqual(response.Status, successStatus); Assert.AreEqual(response.Result.Count, 0); Assert.IsNotNull(response.Result.Failure); Assert.AreNotEqual(response.Result.Failure[0].Status, successStatus); Assert.IsNotNull(response.Result.Failure[0].UdId); Assert.IsNotNull(response.Result.Failure[0].RowIdx); Assert.IsNotNull(response.Result.Failure[0].Message); Assert.IsTrue(!string.IsNullOrWhiteSpace(response.Body)); }
/// <summary> /// 插入数据 /// </summary> /// <param name="data"></param> /// <param name="key"></param> /// <param name="secretKey"></param> /// <returns></returns> /// <remarks>CloudData对象中不需要设置的参数,统一设置为null,不要设置为其他空字符串,值类型也必须设置为可空。否则会导致签名失败</remarks> public static MapResponse <CloudCreateDataResult> CreateData(CloudCreateData data, string key, string secretKey) { string datas = JsonConvert.SerializeObject(data, Formatting.None, settings); string query = PostRequestBuilder.Create(secretKey, "/place_cloud/data/create") .WithKeyValue("data", JsonConvert.SerializeObject(data.Data, Formatting.None, settings)) .WithKeyValue("key", data.Key) .WithKeyValue("table_id", data.TableId) .BuildQueryString(); string url = host + query; var response = Post <MapResponse <CloudCreateDataResult> >(url, datas, out string body); response.Body = body; return(response); }