这里采用C#模拟表单提交,实现LBS云端删除和csv格式文件的上传。
删除:
1 /// <summary> 2 /// 从LBS云端删除数据 3 /// </summary> 4 /// <param name="ak">百度密钥</param> 5 /// <param name="geotable_id">LBS云geotableID</param> 6 /// <param name="columnName">字段名称</param> 7 /// <param name="columnValue">值(为空时则删除所有匹配的数据)</param> 8 /// <returns></returns> 9 public string DeleteByName(string ak, string geotable_id, string columnName, string columnValue) 10 { 11 string boundary = "---------------------------" + DateTime.Now.Ticks.ToString("x"); 12 //请求 13 WebRequest req = WebRequest.Create(@"http://api.map.baidu.com/geodata/v2/poi/delete"); 14 req.Method = "POST"; 15 req.ContentType = "multipart/form-data; boundary=" + boundary; 16 //组织表单数据 17 StringBuilder sb = new StringBuilder(); 18 sb.Append("--" + boundary); 19 sb.Append("\r\n"); 20 21 sb.Append("Content-Disposition: form-data; name=\"ak\""); 22 sb.Append("\r\n\r\n"); 23 sb.Append(ak); 24 sb.Append("\r\n"); 25 sb.Append("--" + boundary); 26 sb.Append("\r\n"); 27 28 sb.Append("Content-Disposition: form-data; name=\"geotable_id\""); 29 sb.Append("\r\n\r\n"); 30 sb.Append(geotable_id); 31 sb.Append("\r\n"); 32 sb.Append("--" + boundary); 33 sb.Append("\r\n"); 34 35 sb.Append("Content-Disposition: form-data; name=\"" + columnName + "\""); 36 sb.Append("\r\n\r\n"); 37 sb.Append(columnValue); 38 sb.Append("\r\n"); 39 sb.Append("--" + boundary); 40 sb.Append("\r\n"); 41 42 43 string head = sb.ToString(); 44 byte[] form_data = Encoding.UTF8.GetBytes(head); 45 //结尾 46 byte[] foot_data = Encoding.UTF8.GetBytes("\r\n--" + boundary + "--\r\n"); 47 48 //post总长度 49 long length = form_data.Length + foot_data.Length; 50 req.ContentLength = length; 51 Stream requestStream = req.GetRequestStream(); 52 53 //发送表单参数 54 requestStream.Write(form_data, 0, form_data.Length); 55 56 //结尾 57 requestStream.Write(foot_data, 0, foot_data.Length); 58 requestStream.Close(); 59 60 61 //响应 62 WebResponse pos = req.GetResponse(); 63 StreamReader sr = new StreamReader(pos.GetResponseStream(), Encoding.UTF8); 64 string html = sr.ReadToEnd().Trim(); 65 sr.Close(); 66 if (pos != null) 67 { 68 pos.Close(); 69 pos = null; 70 } 71 if (req != null) 72 { 73 req = null; 74 } 75 return html; 76 }